复制包含文本的文件以及几个特别命名的子文件夹中的文件

时间:2015-02-13 21:44:03

标签: linux

我有几个像这样的文件夹:

  • 文件夹A.
    • 123-fanart.jpg
    • extrafanart
      • abc.jpg的
      • def.jpg
  • 文件夹B.
    • 456 fanart.jpg
    • extrafanart
      • ghi.jpg
      • jkl.jpg

我希望获取包含" fanart"的所有jpg文件以及每个extrafanart文件夹的所有jpg内容,并将这些全部复制到一个文件夹,如下所示:

  • 同人画
    • 123-fanart.jpg
    • 456 fanart.jpg
    • abc.jpg的
    • def.jpg
    • ghi.jpg
    • jkl.jpg

我已经走到了这一步:

find . -type f \( -iname "*.jpg" -iname "*fanart*" \) -exec cp '{}' fanart \;

但我无法找到一种有效的方法来获取extrafanart文件夹的内容。想法?

1 个答案:

答案 0 :(得分:1)

使用-o指定不同的条件。您可以使用-path选项匹配子目录中的文件

find . -type f \( -name '*fanart.jpg'* -o -path '*/extrafanart/*.jpg' \) -exec cp {} fanart \;