一尘不染

如何使用xargs复制名称中包含空格和引号的文件?

linux

我正在尝试在目录下复制一堆文件,并且其中一些文件的名称中包含空格和单引号。当我尝试串起来findgrepxargs,我得到以下错误:

find .|grep "FooBar"|xargs -I{} cp "{}" ~/foo/bar
xargs: unterminated quote

关于更可靠地使用xargs的任何建议?

这是在具有BSD的Mac OS X
10.5.3
(Leopard)上xargs


阅读 627

收藏
2020-06-02

共1个答案

一尘不染

您可以将所有这些组合成一个find命令:

find . -iname "*foobar*" -exec cp -- "{}" ~/foo/bar \;

这将处理文件名和目录中带有空格的内容。您可以-name用来获取区分大小写的结果。

注意:--传递给的标志cp阻止它处理-以选项开头的文件。

2020-06-02