Bash:使用扩展名为目录中的所有文件添加后缀

use*_*703 12 bash

我想为当前目录中的所有文件添加后缀.

这是我到目前为止搜索stackoverflow和谷歌(并且有点乱),但它一直在失败.我想将字符串附加3.6.16.png我的目录中的所有文件.我可以做前缀部分但我的后缀失败(我猜是因为扩展).

使用bash:

for item in *.png; do mv "$file" "${file}_3.6.14.png"; done
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 28

for file in *.png; do
    mv "$file" "${file%.png}_3.6.14.png"
done
Run Code Online (Sandbox Code Playgroud)

${file%.png}扩展到${file}.png后缀去掉.

  • 单行:`for file in *.png; 执行 mv "$file" "${file%.png}_3.6.14.png"; 完成` (3认同)

Avi*_*Raj 12

你可以通过重命名命令来做到这一点,

rename 's/\.png/_3.6.14.png/' *.png
Run Code Online (Sandbox Code Playgroud)

通过bash,

for i in *.png; do mv "$i" "${i%.*}_3.6.14.png"; done
Run Code Online (Sandbox Code Playgroud)

它替换.png了所有.png文件_3.6.14.png.

  • ${i%.*}最后一点之后的任何东西都会被削减.因此.png部分将从文件名中截止.
  • mv $i ${i%.*}_3.6.14.png 使用文件名+ _3.6.14.png重命名原始.png文件.

  • 哦,我的上帝...... (2认同)
  • 在 Mac 上,您可以使用 home-brew 来安装 rename:`brew install rename` (2认同)