我有大约750个包含两个文件的目录:
long_somewhat_random_filename.jpg thumb.jpg
我想要做的是使用find
或类似的东西重命名thumb.jpg
到long_somewhat_random_filename_thumb.jpg
。 此刻,我的大脑有些模糊。
我可以用perl脚本来做,但是如果在bash中有一些简单的方法,那就容易了。
给脚本下面的一个镜头。 现在echo
使它良性,所以你可以尝试之前,你买这么说。 如果您喜欢所见即所得,请删除echo
并再次运行脚本以实际进行更改。
#!/bin/bash while read file; do echo mv "${file%/*}/thumb.jpg" "${file%.*}_thumb.jpg" done < <(find . -type f ! -name "thumb.jpg" -name "*.jpg")
$ find . -type f -name "*.jpg" ./dir1/dir1_foo_bar.jpg ./dir1/thumb.jpg ./dir2/dir2_foo_bar.jpg ./dir2/thumb.jpg ./dir3/dir3_foo_bar.jpg ./dir3/thumb.jpg ./dir4/dir4_foo_bar.jpg ./dir4/thumb.jpg ./dir5/dir5_foo_bar.jpg ./dir5/thumb.jpg
$ ./mvthumb.sh mv ./dir1/thumb.jpg ./dir1/dir1_foo_bar_thumb.jpg mv ./dir2/thumb.jpg ./dir2/dir2_foo_bar_thumb.jpg mv ./dir3/thumb.jpg ./dir3/dir3_foo_bar_thumb.jpg mv ./dir4/thumb.jpg ./dir4/dir4_foo_bar_thumb.jpg mv ./dir5/thumb.jpg ./dir5/dir5_foo_bar_thumb.jpg