it-swarm-pt.tech

Crie um link simbólico no Finder do Mac OS X

Existe uma maneira de obter a mesma funcionalidade que o comando unix ln -s no Mac OS X Finder (OS 10.5)? Eu quero ser capaz de criar links simbólicos ao trabalhar em janelas do Finder sem abrir o Terminal.

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

39
Michael Schneider

Que tal criando 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

Apenas cole-o no AppleScript Editor e salve-o como um aplicativo . Então você pode arrastá-lo sobre a barra de ferramentas do seu Finder ou vinculá-lo no dock .

16
nuc

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

alt text

26
arathorn

Um applescript no link fornecido pelo usuário nuc respondeu minha pergunta. Aqui está o applescript reproduzido no caso de o link desaparecer.

Eu preferi o script dado pelo comentarista jonn8n, que também foi reproduzido como artigo 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 Editor de Script 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.

2
Michael Schneider

Path Finder adiciona isso ao seu Finder e adiciona muito mais recursos.

1
Khaled Kammar

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

0
beiju

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
0
Lri

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

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 significaria que o aplicativo seria executado em segundo plano e não viria para a frente quando você clicasse nele.

0
Benjamin Dobson