Créer un lien symbolique dans le Finder de Mac OS X


39

Existe-t-il un moyen d’obtenir les mêmes fonctionnalités que la commande unix ln -sdans le Finder de Mac OS X (OS 10.5)? Je souhaite pouvoir créer des liens symboliques tout en travaillant dans les fenêtres du Finder sans ouvrir le terminal.

Notez que la Make Aliascommande dans le Finder n’est pas ce que je veux car ces alias ne peuvent pas être parcourus dans le Terminal (mais les liens créés avec ln -speuvent être parcourus à la fois par le Terminal et le Finder).


macOS devrait vraiment fournir cela comme une option pour les utilisateurs avancés.
Andy

Réponses:


16

Qu'en est-il de la création de liens symboliques dans le Finder via AppleScript ?

Voici le script le plus pertinent dans ce lien:

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

Il suffit de le coller dans l' éditeur AppleScript et de l'enregistrer en tant qu'application . Ensuite, vous pouvez le faire glisser sur la barre d' outils de votre viseur ou le lier sur le dock .


2
Le 2ème commentaire sur ce lien, laissé par jonn8n, donne exactement la fonctionnalité que je cherchais. Bien que je sois un peu surpris, cela n'est pas possible dans le Finder lui-même.
Michael Schneider

Votre lien est pourri
Ben Leggiero Le

27

SymbolicLinker fera exactement ce que vous cherchez, et c'est gratuit.

texte alternatif


3
FWIW, SymbolicLinker fonctionne toujours dans Mavericks 10.9.3.
martineau

1
Votre lien est mort. Avez-vous lié à cela? macupdate.com/app/mac/10433/symboliclinker
Ben Leggiero

SymbolicLinker est mort, au moins comme Mavericks.
Dave Land

Juste une note pour confirmer que cela fonctionne toujours sur Mojave. Il est également intéressant de noter que l’onglet Releases du site lié Github contient un fichier .dmg avec les instructions de service et d’installation afin de ne pas le construire vous-même.
Robin Macharg le

2

Un pommecript sur le lien fourni par l'utilisateur nuc a répondu à ma question. Voici le manuscrit de pomme reproduit au cas où ce lien disparaîtrait.

J'ai préféré le script donné par le commentateur jonn8n, également reproduit dans l' article de 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

J'ai enregistré ceci en tant qu'application à l'aide de Script Editor et j'ai fait glisser l'application dans la barre latérale du Finder afin que je puisse maintenant créer des liens symboliques en faisant glisser des fichiers ou des dossiers sur l'icône de l'application.



0

Une amélioration possible de ce script serait de changer le gestionnaire d'exécution pour utiliser les fichiers actuellement sélectionnés à partir du Finder, comme suit:

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

Vous pouvez également éditer [application] /Contents/Info.plist pour ajouter

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

Juste avant le dernier </ dict>. Cela signifierait que l'application serait exécutée en arrière-plan et ne viendrait pas au premier plan lorsque vous cliquez dessus.


0

En outre, dans Snow Leopard où SymbolicLinker ne fonctionne pas, vous pouvez créer un service avec Automator pour exécuter la commande Terminal ou AppleScript pour créer un lien symbolique.


1
En fait, SymbolicLinker fonctionne sur Snow Leopard depuis au moins décembre 2009.
cregox

0

Un autre 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

Utilisez Automator.app pour créer un service qui exécute un script bash. C’est plus simple qu’AppleScript et plus fiable que l’installation de logiciels tiers.

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

Créer un lien symbolique

Ensuite, vous pouvez accéder à la commande Créer un lien symbolique dans le menu Services :

entrez la description de l'image ici

Le résultat:

entrez la description de l'image ici


-1

Essayez de chercher ici: http://www.techiecorner.com/528/how-to-create-shortcut-in-mac-os-x/

Ceci est déjà intégré à OSX si vous appuyez sur la touche de navigation lorsque vous cliquez sur quelque chose.


5
Seulement ce n'est pas un lien symbolique qui est créé. Vous pouvez cdcréer un lien symbolique vers un dossier, mais pas un alias du Finder. Lisez la question, cela dit déjà. (Modérateurs: nous voudrons peut-être laisser cette non-réponse afin d'empêcher d'autres réponses dans le même sens)
Daniel Beck

5
@daniel Je doute que cela aide beaucoup à prévenir, car les réponses à cette question proviennent généralement de personnes qui ne lisent pas. : P
cregox
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.