Se o seu rename
não suportar -N
, você pode fazer algo assim:
ls -1 -c | xargs rename -n 's/.*/our $i; sprintf("%04d.jpg", $i++)/e'
Editar Para começar com um número determinado, você pode usar o código (de aparência um pouco feia) abaixo, basta substituir 123 pelo número desejado:
ls -1 -c | xargs rename -n 's/.*/our $i; if(!$i) { $i=123; } sprintf("%04d.jpg", $i++)/e'
Isso lista os arquivos em ordem no momento da criação (o mais novo primeiro, adicione -r
ls para classificação inversa) e envia essa lista de arquivos para renomear. Renomear usa código perl no regex para formatar e incrementar o contador.
No entanto, se você estiver lidando com imagens JPEG com informações EXIF, recomendo exiftool
Isso é da documentação do exiftool , em "Renomeando Exemplos"
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.