查找并复制保留文件夹结构的所有图像

时间:2015-03-04 23:11:52

标签: bash find cpio

我正在尝试查找并将所有图像从一个位置复制到另一个位置,同时保留文件夹结构。    我尝试使用以下命令:

 sudo find . -type f -exec file {} \; | awk -F: '{ if ($2 ~/[Ii]mage|EPS/) print $1}'  | cpio -pdm  /media/newlocation

这几分钟工作正常(我有几千兆字节的文件和副本)但是一段时间后我收到以下错误:

find: `file' terminated by signal 13

命令有什么问题?    有更好的方法吗?

此致

2 个答案:

答案 0 :(得分:2)

我不确定你为什么会得到sigpipe。

您可以尝试:

,而不是让我们找到一个执行官 找到。 -type f -print | xargs文件| awk ....

那就是 - 只需让find打印出来并使用xargs文件来运行文件命令。

请注意,您的sudo命令将执行查找,但它不会sudo整行。这会给你带来更多麻烦(如果你需要sudo的话)。

答案 1 :(得分:2)

您可以使用rsync将一个目录复制到另一个目录中。如果您只需要某些特定文件,请随时使用--exclude--include选项。

rsync -avz --include='[iI]mage' --include='EPS' --exclude='*' source/ output/

要测试命令,请添加rsync --dry-run选项:

  

- 干运行执行试运行而不做任何更改

您可以在此thread中找到rsync include参数的一些示例。