Bash: добавить суффикс ко всем файлам в каталоге с расширением [закрыто]

Я хочу добавить суффикс ко всем файлам в текущем каталоге.

вот что у меня есть до сих пор от поиска stackoverflow и Google (и немного возиться) вокруг, но он продолжает терпеть неудачу. Я хочу добавить строку 3.6.16 для всех .png файлы в мой каталог. Я могу сделать префиксную часть, но мой суффикс терпит неудачу (я предполагаю из-за расширения).

используете bash:

for item in *.png; do mv "$file" "${file}_3.6.14.png"; done

2 ответов


for file in *.png; do
    mv "$file" "${file%.png}_3.6.14.png"
done

${file%.png} увеличивается до ${file} С .png суффикс удалены.


вы можете сделать это с помощью команды rename,

rename 's/\.png/_3.6.14.png/' *.png

через Баш,

for i in *.png; do mv "$i" "${i%.*}_3.6.14.png"; done

заменяет .png во всех .png файлы _3.6.14.png.

  • ${i%.*} все, что после последней точки будет урезанное. Так что .png часть будет отрезана от имени файла.
  • mv $i ${i%.*}_3.6.14.png переименовать оригинал .png файлы с именем+_3.6.14.формат PNG.