Si su rename
no es compatible -N
, puede hacer algo como esto:
ls -1 -c | xargs rename -n 's/.*/our $i; sprintf("%04d.jpg", $i++)/e'
Editar Para comenzar con un número dado, puede usar el código (algo feo) a continuación, simplemente reemplace 123 con el número que desee:
ls -1 -c | xargs rename -n 's/.*/our $i; if(!$i) { $i=123; } sprintf("%04d.jpg", $i++)/e'
Esto enumera los archivos en orden por hora de creación (los más nuevos primero, agregue -r
a ls para ordenarlos de forma inversa), luego envía esta lista de archivos para cambiar el nombre. Renombrar usa código perl en la expresión regular para formatear e incrementar el contador.
Sin embargo, si está tratando con imágenes JPEG con información EXIF, le recomendaría exiftool
Esto es de la documentación de exiftool , en "Ejemplos de cambio de nombre"
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.