Por alias, quero dizer o atalho da pasta criado quando você clica com o botão direito do mouse em uma pasta no Finder e seleciona "Criar alias". Eu posso atravessar links simbólicos no Terminal com cd
, mas não funciona em aliases: bash: cd: example-alias: Not a directory
. É possível alterar o diretório para o destino de um alias no Terminal?
9
Respostas:
Para ativar o cd'ing em um alias de pasta, encontrei o seguinte no Mac OS X Hints .
Compile o código-fonte abaixo com o seguinte comando:
Isso criará o executável 'getTrueName' no mesmo diretório que a origem. Você pode adicioná-lo ao seu PATH ou simplesmente copiá-lo diretamente para / usr / bin ou / usr / local / bin, para facilitar o acesso.
Código-fonte C para getTrueName (copie o texto e salve o arquivo como getTrueName.c no diretório inicial):
Inclua o seguinte em ~ / .bash_profile ou crie um novo arquivo ~ / .bash_profile com o seguinte conteúdo:
Você provavelmente precisará reiniciar o Terminal para carregar o .bash_profile modificado.
Testado no Yosemite 10.10.2 e gcc 4.2 (Xcode 6.2) e funciona.
Uma abordagem semelhante está disponível em superuser.com
fonte
Não testei a resposta do @klanomath, mas costumava haver uma biblioteca Python para obter o alvo de um alias, mas o suporte ao Carbon foi removido das estruturas da Apple. Isso pode ser feito no Objetivo C, consulte https://stackoverflow.com/a/21151368/838253 .
A melhor aposta é usar links simbólicos, mas infelizmente o Finder não permite que você os crie.
Eu escrevi um serviço OS X que cria links simbólicos (suportados pelo Finder e pelo Terminal). Isso executa o seguinte script bash em um fluxo de trabalho do Finder. (Infelizmente, não parece possível postar o código do Automator em um formato legível).
fonte
curFolder
elinkFile
não são utilizadas. Por que elas estão lá? Deve haver espaços em torno do operador de comparação, por exemplo,$fileExists == ""
e considere o uso em$(..)
vez de backticks herdados.Aqui está minha opinião sobre isso.
adicione e carregue esta função no seu .profile.
Atualizar.
Eu usei a
builtin cd
linha mostrada na resposta @klanomath, que permite substituir o comando cd. Então agora podemos usar:cd /path/to/example-alias
ou
cd /path/to/example
A função deve retornar e cd para o caminho original do alias original ou o caminho normal.
fonte
Embora um link simbólico (alias do UNIX) tenha a mesma aparência de um alias do Finder no Finder, eles são dois tipos diferentes de alias.
Um link simbólico manterá apenas o caminho que leva e será interrompido permanente ou temporariamente se o recurso for movido ou em uma unidade ou compartilhamento desconectado, respectivamente.
Um alias do Finder é tecnicamente um arquivo comum com instruções para o Finder. O Finder pode usar essas informações para localizar um arquivo / diretório de destino movido até um certo ponto. Se um recurso de destino de um alias estiver em um ponto de compartilhamento de rede montado, ele também reterá informações sobre qual item de Chaveiro usar para fazer logon no ponto de compartilhamento e abri-lo.
Portanto, a menos que você escreva um script ou programa para ler o arquivo de alias do Finder, ele não será usado como diretório, mas como arquivo no Terminal.
Como alternativa, você pode remover o alias atual do Finder e criar um link simbólico em seu lugar. O comando seria
ln -s /path/to/original
criar um link simbólico no diretório atual. O caminho pode ser um caminho completo ou relativo.fonte
osascript[9807:7154723] CFURLGetFSRef was passed an URL which has no scheme (the URL will not work with other CFURL routines)
Com a ajuda desta dica , modifiquei o applecript de @ markunte para remover a mensagem de aviso acima
fonte
Como a maioria dos sistemas operacionais (além do Windows), o OS X suporta scripts Bash. Primeiro, crie o arquivo na sua área de trabalho (ou em qualquer local que você queira):
toque em ~ / Desktop / PlexConnect.sh Em seguida, defina as permissões do arquivo para que ele seja executável:
chmod + x ~ / Desktop / PlexConnect.sh Você pode editar o conteúdo do script com o editor de texto de sua escolha, apenas verifique se ele começa com a seguinte linha para que o sistema saiba executá-lo usando o shell (Bash):
! / bin / bash
O arquivo pode ser clicado duas vezes, iniciando o Terminal e executando-o.
Uma solução mais elegante para isso, no entanto, pode ser criar um aplicativo AppleScript que execute o comando para você. Abra o aplicativo "Script Editor" e cole o seguinte:
faça o shell script "/Applications/PlexConnect-master/PlexConnect.py" com privilégios de administrador Salve isso como um "Aplicativo", nomeando-o como desejar. Ao abri-lo, ele fornecerá o prompt de senha padrão do OS X, executará o script e depois se fechará.
fonte