Crea un collegamento simbolico nel Finder di Mac OS X.


39

C'è un modo per ottenere la stessa funzionalità del comando unix ln -snel Finder di Mac OS X (OS 10.5)? Voglio essere in grado di creare collegamenti simbolici mentre lavoro nelle finestre del Finder senza aprire il Terminale.

Si noti che il Make Aliascomando nel Finder non è quello che voglio perché quegli alias non possono essere navigati nel Terminale (ma i collegamenti creati con ln -spossono essere navigati sia dal Terminale che dal Finder).


macOS dovrebbe davvero fornire questo come una funzione opt-in per utenti esperti.
Andy,

Risposte:


16

Che dire della creazione di collegamenti simbolici nel Finder tramite AppleScript ?

Ecco lo script più rilevante in quel 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 incollarlo in AppleScript Editor e salvarlo come un'applicazione . Quindi puoi trascinarlo sulla barra degli strumenti del Finder o collegarlo sul dock .


2
Il secondo commento a quel link, lasciato da jonn8n, offre esattamente la funzionalità che stavo cercando. Tuttavia, sono un po 'sorpreso che ciò non sia possibile all'interno del Finder stesso.
Michael Schneider,

Il tuo link è marcio
Ben Leggiero,

27

SymbolicLinker farà esattamente quello che stai cercando ed è gratuito.

testo alternativo


3
FWIW, SymbolicLinker funziona ancora in Mavericks 10.9.3.
martineau,

1
Il tuo link è morto. Ti sei collegato a questo? macupdate.com/app/mac/10433/symboliclinker
Ben Leggiero,

SymbolicLinker è morto, almeno a partire da Mavericks.
Dave Land il

Solo una nota per confermare che questo funziona ancora su Mojave. Vale anche la pena notare che la scheda Rilasci sul sito Github collegato ha un .dmg con le istruzioni di servizio e installazione per salvare la creazione da soli.
Robin Macharg il

2

Uno script di Apple al link fornito dall'utente nuc ha risposto alla mia domanda. Ecco lo script di mele riprodotto nel caso in cui il link scompaia.

Ho preferito la sceneggiatura fornita dal commentatore jonn8n, che è stata anche riprodotta come articolo di 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

L'ho salvato come un'applicazione usando Script Editor e ho trascinato l'applicazione nella barra laterale del Finder in modo da poter ora creare collegamenti simbolici trascinando i file o le cartelle sull'icona dell'applicazione.



1

Utilizzare Automator.app per creare un servizio che esegue uno script bash. È più semplice di AppleScript e più affidabile dell'installazione di software di terze parti.

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

Crea Symbolic Link.workflow

Quindi è possibile accedere al comando Crea collegamento simbolico dal menu Servizi :

inserisci qui la descrizione dell'immagine

Il risultato:

inserisci qui la descrizione dell'immagine


0

Un possibile miglioramento su questo script potrebbe essere la modifica del gestore di esecuzione per utilizzare i file attualmente selezionati dal Finder, in questo modo:

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

È inoltre possibile modificare [application] /Contents/Info.plist per aggiungere

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

Poco prima dell'ultimo </dict>. Ciò significherebbe che l'app verrà eseguita in background e non verrebbe in primo piano quando si fa clic su di essa.


0

Inoltre, in Snow Leopard dove SymbolicLinker non funziona, è possibile creare un servizio con Automator per eseguire il comando Terminale o AppleScript per creare un collegamento simbolico.


1
In realtà SymbolicLinker funziona su Snow Leopard dal almeno dicembre 2009.
Cregox

0

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

Prova a cercare qui: http://www.techiecorner.com/528/how-to-create-shortcut-in-mac-os-x/

Questo è già integrato in OSX se si preme il tasto di controllo quando si fa clic su qualcosa.


5
Solo che non è un collegamento simbolico che viene creato. Puoi inserire cdun link simbolico in una cartella, ma non in un alias Finder. Leggi la domanda, lo afferma già. (Moderatori: potremmo voler lasciare questa non risposta, per evitare ulteriori risposte su questa linea)
Daniel Beck

5
@daniel Dubito che aiuterà molto a prevenire, poiché le risposte in questa linea provengono in genere da persone che non leggono. : P
cregox
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.