按名称查找文件夹然后复制文件

时间:2017-11-20 22:23:30

标签: linux macos unix terminal

我需要找到名为" child"的子目录。并将这些文件夹中的文件复制到新目录。无法让它发挥作用。

我可以找到子目录,但我无法从中复制文件。

> find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child

上面将找到03_2016中名为" child"的所有子目录。但是我现在如何复制这些目录中的文件?

我试过了,但问题是它似乎想复制目录本身而不仅仅是文件:

> find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child | xargs cp '{}' /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST \;

我无法让它仅定位文件。

2 个答案:

答案 0 :(得分:1)

你很亲密:

> find $YOUR_PATH/03_2016/ -type d -iname child | xargs -I {} find -type f {} | xargs -I {} cp {} /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST

注意:您可能会覆盖在最终目的地共享相同名称的文件

答案 1 :(得分:1)

这可能比上面的答案更清晰:

find $(find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child | xargs) -type f -exec cp {} /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST \;

两次调用find,一次调用xargs。与其他答案一样,这也会覆盖重复的文件名。