1 votes

L'automate peut-il créer des liens symboliques mais ignorer les fichiers existants ?

Aujourd'hui, j'ai découvert le génial Créer une action Symlinks à partir de JuneCloud . Il fonctionne très bien, mais crée des fichiers en double (en ajoutant un numéro à chacun d'eux) pour tout lien symbolique qui existe déjà dans l'emplacement final. Je veux qu'il ignore simplement ces fichiers et continue à travailler.

J'ai essayé d'utiliser un shell script ln -s mais cela échoue tout simplement avec un The action “Run Shell Script” encountered an error. après avoir touché un fichier qui existe déjà.

Existe-t-il un moyen de créer un lien symbolique mais d'ignorer les fichiers existants ? Je sais que je peux utiliser -f pour écraser, mais je préfère passer outre. Comment faire, soit dans Automator, soit dans le shell script ?

2voto

NoahL Points 3409

Oui ! Vous pouvez le faire facilement dans le shell script. Le site -h fait l'affaire, comme décrit (en quelque sorte) sur le site Web de la Commission européenne. Page de manuel ln . Donc, au lieu de faire ln -s , faire ln -sh .

Voici un exemple. Supposons que vous vouliez créer un lien symbolique pour chacun de vos téléchargements, qui existerait sur votre bureau, mais que vous avez déjà des liens symboliques à cet endroit. Vous pourriez alors faire ceci :

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

Pour tous les fichiers pour lesquels vous avez déjà des liens symboliques, la commande s'imprimera :

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

La commande effectue cette impression après l'exécution, de sorte qu'elle ne génère aucune erreur et ne nécessite aucune entrée supplémentaire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X