C'è un modo per creare un hard link nel finder?

8

C'è un modo per creare un hard link nel finder?

Un hard link nel terminale verrebbe creato con:

ln /path/to/file /path/to/newpath

mentre un collegamento simbolico / alias può essere eseguito tenendo premuto il comando e l'opzione o

ln -s /path/to/file /path/to/newpath

(anche se apparentemente i comportamenti di 'alias' e 'ln' sono diversi )

    
posta keflavich 15.10.2011 - 01:02
fonte

5 risposte

7

Potresti creare un servizio di Automator come questo:

Questo prende i file selezionati e crea collegamenti fisici a loro nella directory in cui esistono. È quindi possibile trascinare e rilasciare i collegamenti nella posizione in cui li si desidera.

Funzionerà per i file con spazi nei loro nomi, ma non per i file contenenti virgolette nel loro nome.

Puoi accedervi dal menu Finder » Servizi , dal menu di scelta rapida e puoi assegnargli una scorciatoia da tastiera analoga a L scorciatoia per alias (forse L ).

    
risposta data 14.11.2011 - 05:18
fonte
2

Non c'è modo di farlo in Finder.app stesso. Tuttavia, se il tuo obiettivo è solo quello di evitare di digitare i comandi in Terminal.app, puoi utilizzare Automator.app per creare un flusso di lavoro per eseguire i comandi per te.

    
risposta data 15.10.2011 - 01:09
fonte
2

In realtà volevo che il termine del collegamento venisse rinominato con l'estensione conservata altrimenti il Finder non riconoscerebbe il tipo di file.

quindi ho usato la risposta di Daniel (grazie per questo) e l'ho cambiata un po '

for f in "$@"
 do  
  dir=$(dirname "$f")
  filename=$(basename "$f")
  extension=$([[ "$filename" = *.* ]] && echo ".${filename##*.}" || echo '')
  filename="${filename%.*}"
  ln "$f" "${dir}/$filename Hardlink$extension"
done

EDIT: aggiunto quello che penso sia il miglior codice di gestione dell'estensione - dovrebbe essere vuoto se non è presente alcuna estensione. Scusa, non sono bravo a scrivere script, quindi ti preghiamo di condividere eventuali correzioni che ritieni necessarie.

    
risposta data 20.10.2014 - 18:30
fonte
1

Sì, indirettamente.

Automator ti permette di creare servizi che eseguono qualsiasi script di shell e ti può anche chiedere un percorso verso la destinazione per il collegamento reale (poiché non si troverà nella stessa posizione dell'originale presumibilmente). Suppongo che tu possa impostare la posizione del collegamento come in un desktop.

Basta aggiungere un passaggio per far apparire una finestra di dialogo per inserire o altrimenti scegliere la destinazione e passare al comando ln .

    
risposta data 14.11.2011 - 04:34
fonte
1

Bella soluzione fornita da Daniel, ma suggerisco di sostituire il suo codice di script con quello in basso che conserva il tipo di file.

for f in "$@"
do  
  ln "$f" "Plink-$(basename "$f")"
done
    
risposta data 11.10.2014 - 16:01
fonte

Leggi altre domande sui tag