Якщо ваш rename
не підтримує -N
, ви можете зробити щось подібне:
ls -1 -c | xargs rename -n 's/.*/our $i; sprintf("%04d.jpg", $i++)/e'
Редагувати Для початку із заданого числа ви можете використовувати (дещо некрасивий) код нижче, просто замініть 123 на потрібний номер:
ls -1 -c | xargs rename -n 's/.*/our $i; if(!$i) { $i=123; } sprintf("%04d.jpg", $i++)/e'
У цьому списку перераховані файли за часом створення (найновіше, спочатку додайте -r
до ls для зворотного сортування), після чого надсилається цей список файлів для перейменування. Перейменування використовує код perl в регулярному виразі для форматування та збільшення лічильника.
Однак якщо ви маєте справу з зображеннями JPEG з інформацією EXIF, рекомендую exiftool
Це з документації exiftool у розділі "Перейменування прикладів"
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.