我正在尝试查找并将所有图像从一个位置复制到另一个位置,同时保留文件夹结构。 我尝试使用以下命令:
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
命令有什么问题? 有更好的方法吗?
此致
答案 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参数的一些示例。