Je cherchais une solution permettant de renommer par lots des photos sur Mac OS X. J'ai trouvé de nombreuses solutions, mais la plupart d'entre elles ne fonctionnent pas si le fichier contient un espace ou si je souhaite le faire. dans le nom du fichier.
Par exemple, j'ai trouvé ce script:
for i in *.jpg; do newname=$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- $i); mv -- $i $newname.jpg; done
Le script fonctionne tant que je ne mets pas d'espace dans le nom de fichier final (je veux un espace dans le nom de fichier car je renomme mes fichiers avec des espaces depuis 3 ans sous Windows). Et il se casse également si le fichier lui-même a un espace. Donc, si j'ai une photo appelée "Hello World.jpg", elle ne sera pas traitée.
Quelqu'un aurait-il une solution, s'il vous plaît? Cela ne nécessite de préférence aucun logiciel supplémentaire (je veux juste pouvoir copier / coller ce script chaque fois que je change de machine).
Je vous remercie!
echo
devantmv
, vous pouvez voir quelles seront les commandes.$i
de$(... $i)
. (Cela fonctionne, malgré les guillemets extérieurs.) Vous devez généralement mettre les guillemets doubles autour de toute substitution de variable, sauf si vous avez une raison spécifique de ne pas le faire.stat
options semblent être différentes et j'ai raté les guillemets intérieurs.Normalement, il suffirait de remplacer
$i
par"$i"
.la source