我试图复制目录下的一堆文件,其中一些文件的名称中有空格和单引号.当我try 将findgrepxargs串在一起时,我得到以下错误:

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

有没有关于更强大地使用xargs的建议?

This is on Mac OS X 10.5.3 (Leopard) with BSD xargs.

推荐答案

您可以将所有这些合并到一个find命令中:

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

这将处理包含空格的文件名和目录.您可以使用-name来获得区分大小写的结果.

注意:传递给cp--标志阻止它处理从-开始的文件作为选项.

Linux相关问答推荐

在CefExecuteProcess;之前创建新线程会导致CEF应用程序崩溃并显示SIGTRAP

bind() 错误 98 - 地址已在使用中

awk 使用动态列号

如何恢复已停止的进程?

如何指定链接时使用的库版本?

使用 Bash 获取特定文件的 mtime?

在 Linux 下将 TCP 流量重定向到 UNIX 域套接字

Eclipse 的 C# 插件

如何计算列的平均值

让 Tk 看起来像一个原生 Linux 应用程序

SVN 错误:无法将字符串从本机编码转换为UTF-8

使用 ssh 判断远程主机上是否存在文件

如果关键字触发然后执行命令,Shell 脚本来监视日志(log)文件?

如何获取/使用 LibUUID?

Colored shell 脚本输出库

linux根据文件名模式搜索文件

解压tar tar.bz2 文件报错

Linux:处理成服务

区分 Java 线程和 OS 线程?

在tmux中绑定Ctrl+Tab和Ctrl+Shift+Tab