L'automatore può creare collegamenti simbolici ma saltare i file esistenti?

1

Oggi ho scoperto l'eccezionale azione Crea link simbolici da JuneCloud . Funziona alla grande, ma crea file duplicati (aggiungendo un numero a ciascuno) per qualsiasi link simbolico già esistente nella posizione finale. Voglio solo ignorare quei file e continuare a fare il giro su camion.

Ho provato a utilizzare uno script di shell ln -s ma questo semplicemente fallisce con un messaggio The action “Run Shell Script” encountered an error. dopo aver colpito un file già esistente.

C'è un modo per creare un link simbolico ma SKIP file esistenti? So che potrò noi -f a sovrascrivere, ma preferirei semplicemente saltare. Come può essere fatto in Automator o nello script di shell?

    
posta Jonathan van Clute 18.04.2017 - 22:47
fonte

1 risposta

2

Sì! Puoi farlo facilmente nello script della shell. Il flag -h si adatta alla fattura, come descritto (sorta di) su nella pagina man . Quindi, invece di fare ln -s , fai ln -sh .

Ecco un esempio. Supponi di voler creare un collegamento simbolico di ciascuno dei tuoi download, che esisterebbe sul tuo desktop, ma hai già alcuni link simbolici. Quindi potresti fare questo:

cd Downloads
for f in *; do ln -sh ~/Downloads/"$f" ~/Desktop; done;

Per tutti i file che hai già con i collegamenti simbolici, il comando verrà stampato:

    ln: /Users/******/Desktop/FlashPlayer.dmg: File exists

Il comando esegue questa stampa dopo l'esecuzione in modo da non generare errori né richiedere input aggiuntivi.

    
risposta data 18.04.2017 - 23:31
fonte

Leggi altre domande sui tag