Crie um link simbólico no Mac OS X Finder


39

Existe uma maneira de obter a mesma funcionalidade que o comando unix ln -sno Mac OS X Finder (OS 10.5)? Quero poder criar links simbólicos enquanto estiver trabalhando nas janelas do Finder sem abrir o Terminal.

Observe que o Make Aliascomando no Finder não é o que eu quero, porque esses aliases não podem ser navegados no Terminal (mas os links criados com ln -spodem ser navegados pelo Terminal e pelo Finder).


o macOS realmente deve fornecer isso como um recurso de aceitação para usuários avançados.
Andy

Respostas:


16

Que tal criar links simbólicos no Finder via AppleScript ?

Aqui está o script mais relevante nesse link:

on run
    open {choose file with prompt "Choose a file to create a symbolic link:" without invisibles}
end run

on open the_files
    repeat with i from 1 to (count the_files)
        try
            set posix_path to POSIX path of (item i of the_files)
            if posix_path ends with "/" then set posix_path to text 1 thru -2 of posix_path
            do shell script "ln -s " & quoted form of posix_path & " " & quoted form of (posix_path & ".sym")
        end try
    end repeat
end open

Basta colá-lo no AppleScript Editor e salve-o como um aplicativo . Em seguida, você pode arrastá-lo sobre a barra de ferramentas do localizador ou vinculá-lo à estação .


2
O segundo comentário nesse link, deixado por jonn8n, fornece exatamente a funcionalidade que eu estava procurando. Embora, estou um pouco surpreso que isso não seja possível no próprio Finder.
22710 Michael Schneider

Seu link está podre
Ben Leggiero 28/10

27

O SymbolicLinker fará exatamente o que você está procurando, e é grátis.

texto alternativo


3
FWIW, o SymbolicLinker ainda funciona no Mavericks 10.9.3.
28814 martineau

1
Seu link está morto. Você ligou para isso? macupdate.com/app/mac/10433/symboliclinker
Ben Leggiero

O SymbolicLinker está morto, pelo menos a partir do Mavericks.
Dave Land

Apenas uma nota para confirmar que isso ainda funciona no Mojave. Também é importante notar que a guia Versões no site vinculado do Github possui um .dmg com as instruções de serviço e instalação para salvar você mesmo a construção.
Robin Macharg

2

Um AppleScript no link fornecido pelo usuário nuc respondeu à minha pergunta. Aqui está o texto da maçã reproduzido caso o link desapareça.

Eu preferi o roteiro dado pelo comentarista jonn8n, que também foi reproduzido como artigo da Macworld .

on run
    open {choose file with prompt ¬
        "Choose a file to create a symbolic link:" without invisibles}
end run
on open the_files
    repeat with i from 1 to (count the_files)
        try
            set posix_path to POSIX path of (item i of the_files)
            if posix_path ends with "/" then set posix_path to ¬
                text 1 thru -2 of posix_path
            do shell script "ln -s " & quoted form of posix_path ¬
                & " " & quoted form of (posix_path & ".sym")
        end try
    end repeat
end open

Salvei isso como um aplicativo usando o Script Editor e arrastei o aplicativo para a barra lateral do Finder, para que agora eu possa criar links simbólicos arrastando arquivos ou pastas para o ícone do aplicativo.



1

Use Automator.app para criar um serviço que executa um script bash. Isso é mais simples que o AppleScript e mais confiável do que instalar software de terceiros.

for f in "$@"
do
    ln -s "$f" "$f.symlink"
done

Criar Link.workflow simbólico

Em seguida, você pode acessar o comando Criar link simbólico no menu Serviços :

insira a descrição da imagem aqui

O resultado:

insira a descrição da imagem aqui


0

Uma possível melhoria nesse script seria alterar o manipulador de execução para usar os arquivos atualmente selecionados no Finder, da seguinte maneira:

on run
    tell application "Finder" to set sel to selection
    open sel
end run
on open the_files
    repeat with i from 1 to (count the_files)
        try
            set posix_path to POSIX path of (item i of the_files as alias)
            if posix_path ends with "/" then set posix_path to ¬
                text 1 thru -2 of posix_path
            try
                do shell script "ln -s " & quoted form of posix_path ¬
                    & " " & quoted form of (posix_path & ".sym")
            on error
                try
                    do shell script "ln -s " & quoted form of posix_path ¬
                        & " " & quoted form of (posix_path & ".sym") with administrator privileges

                end try
            end try
        end try
    end repeat
end open

Você também pode editar [application] /Contents/Info.plist para adicionar

<key>LSUIElement</key>
<true/>

Pouco antes do último </dict>. Isso significa que o aplicativo será executado em segundo plano e não virá para a frente quando você clicar nele.


0

Além disso, no Snow Leopard, onde o SymbolicLinker não funciona, você pode criar um Serviço com o Automator para executar o comando Terminal ou o AppleScript para criar um link simbólico.


1
Na verdade SymbolicLinker funciona no Snow Leopard desde, pelo menos, Dezembro de 2009.
cregox

0

Mais um AS:

tell application "Finder"
    repeat with f in (get selection)
        set p to POSIX path of (f as text)
        set p2 to POSIX path of (desktop as text) & name of f
        do shell script "ln -s " & quoted form of p & " " & quoted form of p2
    end repeat
end tell

-1

Tente procurar aqui: http://www.techiecorner.com/528/how-to-create-shortcut-in-mac-os-x/

Isso já está embutido no OSX se você pressionar a tecla Control quando clicar em algo.


5
Só que não é um link simbólico criado. Você pode cdinserir um link simbólico para uma pasta, mas não um alias do Finder. Leia a pergunta, ela já afirma isso. (Moderadores: Podemos querer deixar este não-resposta em, para evitar novas respostas ao longo desta linha)
Daniel Beck

5
@daniel Duvido que ajude muito a prevenir, pois as respostas nesta linha geralmente vêm de pessoas que não lêem. : P
cregox 8/03/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.