J'ai un script bash très simple que j'utilise dans OSX Terminal. Il est conçu pour renommer les fichiers en utilisant des chemins de fichiers spécifiques. Il fonctionnait bien il y a quelques mois mais récemment toutes sortes de choses folles lui arrivent et je ne sais pas pourquoi.Problèmes avec le script de renommer Bash
Voici le code:
mv() { command mv "[email protected]"; sleep 1; }
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate1.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate1A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate2.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate2A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate3.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate3A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate4.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate4A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_lifestyle.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_lifestyleA.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_standard.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_standardA.tif
J'ai couru avec et sans la première ligne. J'ai ajouté le délai de sommeil car je soupçonnais que ce qui causait les problèmes était un service informatique trop agressif perturbant Terminal, ce qui pourrait être toujours le cas, mais de toute façon le script ne fonctionne pas.
Voici ce terminal retourne quand je le lance:
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate1.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate1A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate2.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate2A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate3.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Remv -nvest/1140122_alternate3A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_alternate4.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Remv -nTest/1140122_alternate4A.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_lifestyle.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Renmv -nv /Volume22_lifestyleA.tif
mv -nv /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_standard.tif /Volumes/COMMON-LIC-PHOTO/DATA/James/Rename_Test/1140122_standardA.tifç^C^C^C^C^C
Comme vous pouvez le voir fait un véritable gâchis du fichier renommer ainsi que les chemins de fichiers qui ne sont même pas changé. Je suis littéralement en train d'ajouter la lettre A entre la fin du nom de fichier et l'extension du fichier.
Est-ce que quelqu'un voit quelque chose ici qui pourrait causer cela? Notre service informatique a récemment commencé à utiliser une passerelle de contenu appelée WebSense pour surveiller l'activité de l'entreprise, est-il possible qu'elle cause les problèmes?
Y at-il danger que votre script a été près d'une machine Windows, ou autrement été contaminés par retour chariot (^ M) caractères? Je ne suis pas sûr que cela expliquerait ce que vous voyez facilement, mais je me demandais juste. Comment l'exécutez-vous? 'sh script.sh'? Avez-vous essayé 'bash -x script.sh' (ou' sh -x script.sh')? –
Oui, c'est certainement près d'une machine Windows. Les chemins d'accès aux fichiers doivent être recherchés dans Windows car nous ne disposons pas encore d'une configuration pour une communication correcte entre notre serveur Windows et nos Macs. Ces chemins de fichier sont placés dans un document Excel que je formate ensuite dans TextWrangler pour être utilisé dans le code. Mais, il est tout à fait possible que ça fasse des dégâts. Je devrais aussi essayer de l'exécuter dans un shell et pas directement dans Terminal. –