Bash命令在许多目录中复制和重命名相同的文件名?

时间:2014-12-11 14:56:18

标签: bash command-line

如果我有:

Images
    1234
        base.jpg
        small.jpg
    5678
        base.jpg
    9012
        base.jpg
    3456
        base.jpg
        small.jpg

我想运行一个命令来浏览这个dir结构,找到base.jpg并将它复制为small.jpg如果small.jpg不存在于同一个目录中。我有大约1700+ dir这些图像,我想要任何一个没有小的目录,以复制和重命名base.jpg。

任何命令?

1 个答案:

答案 0 :(得分:6)

如何将findexecdir一起使用:

find Images -name "base.jpg" -execdir cp -n {} small.jpg \;

Images目录中搜索名称为base.jpg的文件。对于找到的每个文件,它会尝试将其复制到同一目录中名为small.jpg的文件中。 -n切换到cp会阻止现有文件被覆盖。