Как переименовать файлы в монотонно увеличивающиеся порядковые номера с последующим суффиксом?
Я хочу переименовать все файлы в определенном каталоге в число, за которым следует суффикс. Например, я хочу переименовать все файлы *.jpg в 1.jpg, 2.jpg, 3.jpg, ...
Я думал об использовании find для этого (что-то вроде find ./*.jpg --exec mv {} <number_of_iteration>.jpg) но я не знаю, что я бы положил в <number_of_iteration>,
Могу ли я использовать find сделать это? Или есть лучший способ?
1 ответ
Решение
Вам нужно будет поддерживать итерацию отдельно. Например, используйте скрипт move_count содержащий следующее:-
[ -w ~/MoveCount ] || echo 0 >~/MoveCount
read count <~/MoveCount
((++count))
echo $count >~/MoveCount
mv "$1" "$count.${1##*.}"
Тогда ваш find команда станет:
find -iname "*.jpg" -exec bash -c "move_count {}" \;
Обратите внимание, что bash вызывается явно, потому что по умолчанию sh не понимает синтаксис, который я использовал Или сделать #!/bin/bash первая строка move_count,