Si votre rename
ne prend pas en charge -N
, vous pouvez faire quelque chose comme ceci:
ls -1 -c | xargs rename -n 's/.*/our $i; sprintf("%04d.jpg", $i++)/e'
Modifier Pour commencer avec un numéro donné, vous pouvez utiliser le code (quelque peu laid) ci-dessous, remplacez simplement 123 par le numéro que vous voulez:
ls -1 -c | xargs rename -n 's/.*/our $i; if(!$i) { $i=123; } sprintf("%04d.jpg", $i++)/e'
Cela répertorie les fichiers par date de création (le plus récent en premier, ajoutez -r
à ls pour inverser le tri), puis envoie cette liste de fichiers à renommer. Renommer utilise du code perl dans l'expression régulière pour formater et incrémenter le compteur.
Cependant, si vous avez affaire à des images JPEG avec des informations EXIF, je recommanderais exiftool
Ceci provient de la documentation exiftool , sous "Renommer des exemples"
exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e dir
Rename all images in "dir" according to the "CreateDate" date and time, adding a copy number with leading '-' if the file already exists ("%-c"), and
preserving the original file extension (%e). Note the extra '%' necessary to escape the filename codes (%c and %e) in the date format string.