如何使用xargs将特定文件从一个目录移动到另一个目录?

时间:2013-06-30 16:44:54

标签: unix xargs mv

假设我输入以下命令:

find /etc/info/ -name ".c" | xargs -I {} grep -l 'importantFile' {}

现在我拥有了我感兴趣的所有文件,其后缀为.c和关键字“importantFile”。如何将其移动到我当前的目录(名称:文件夹)?

我试过了:

find /etc/info/ -name ".c" | xargs -I {} grep -l 'importantFile' {} mv{} ./folder

它不起作用。请帮忙:p

2 个答案:

答案 0 :(得分:2)

如果你喜欢坚持使用find,那么这样的事情应该有效:

xargs -r0 --arg-file <(find . -name "*.c" -type f -exec grep -lZ importantFile {} +
  ) mv -i --target-directory ./folder

试试这个

grep -lir 'importantFile' /etc/info/*.c | xargs mv -t ./folder

答案 1 :(得分:1)

这适用于移动复制某些PDF

find . -name "*.pdf" | xargs -I % cp % ../testTarget/

因此,对于您的示例,它应该是

 find /etc/info/ -name "*.c" | xargs -I % mv % ./folder