如何重命名名称以“_backup”结尾的文件夹中的所有文件
我有一堆图像以某种方式从myimage.jpg
重命名为myimage.jpg_backup
,因此我网站上的图像不再加载。 如何递归查找以_backup
结尾的所有图像, _backup
删除_backup
部分,同时保留文件名的其余部分?
我试过这样的事情:
sudo find . -name "*.jpg_backup" -exec rename -n 's/_backup$//' *.jpg_backup ';'
但它给了我一个错误:
Can't rename *.jpg_backup *.jpg: No such file or directory
尝试rename -v 's/\.jpg_backup$/\.jpg/' *.jpg_backup
-v为您提供详细输出。 请参阅此处如何重命名
在终端中 ,转到这些文件所在的目录(使用cd /path/to/folder
)。 如果文件不包含任何空格或特殊字符\[*?
,运行以下命令:
for file in `find . -name *.jpg_backup` ; do mv "$file" "${file%_backup}"; done
如果您认为您的文件名包含空格或通配符,请使用:
find . -type f -name '*.jpg_backup' -print0 \ | while IFS= read -r -d '' file ; do mv -- "$file" "${file%_backup}"; done
要么:
shopt -s globstar; for file in /path/to/folder/**/*.jpg_backup ; do mv -- "$file" "${file%_backup}"; done
递归上面的命令将从当前文件夹和子文件夹中找到所有*.jpg_backup
文件,并将它们重命名为*.jpg
。 最后一个也看到了目录的符号链接。