Ok, j'ai un tas de fichiers commençant par un tiret, -. Ce qui n'est pas si bon ... et je veux les renommer. Dans mon cas particulier, je voudrais juste mettre un personnage devant eux.
J'ai trouvé la ligne suivante qui devrait fonctionner, mais à cause de cela, elle ne fonctionne pas:
for file in -N*.ext; do mv $file x$file; done
Si je mets un echo
devant le mv
je reçois un tas de
mv -N1.ext x-f1.ext
mv -N2.ext x-f2.ext
Ce qui est correct, sauf que bien sûr, il pensera que le premier nom de fichier est des options. Donc, quand je retire le echo
et l'exécute, je reçois juste un tas de
mv: illegal option -- N
J'ai essayé de le changer en
for file in -N*.ext; do mv "$file" "x$file"; done
mais les citations sont simplement ignorées, semble-t-il. J'ai essayé d'utiliser des guillemets simples, mais la variable n'a pas été développée ... Que dois-je faire ici?
Mise à jour: J'ai maintenant également essayé de citer les citations. Comme ça:
for file in -N*.ext; do mv '"'$file'"' '"'x$file'"'; done
Et quand je fais écho, ça a l'air correct, mais quand je le lance, je reçois juste
mv: rename "-N1.ext" to "x-n1.ext":: No such file or directory
Je n'ai aucune idée de comment faire ça maintenant ... soupir