【发布时间】:2010-09-13 16:16:20
【问题描述】:
我正在尝试复制目录下的一堆文件,并且其中一些文件的名称中有空格和单引号。当我尝试将find 和grep 与xargs 串在一起时,出现以下错误:
find .|grep "FooBar"|xargs -I{} cp "{}" ~/foo/bar
xargs: unterminated quote
对于更健壮地使用 xargs 有什么建议吗?
这是在 Mac OS X 10.5.3 (Leopard) 上使用 BSD xargs。
【问题讨论】:
-
带有单引号的文件名的 GNU xargs 错误消息更有帮助:“xargs:不匹配的单引号;默认情况下,引号对 xargs 是特殊的,除非您使用 -0 选项”。
-
GNU xargs 还有
--delimiter选项(-d)。尝试使用\n作为分隔符,这样可以防止xargs将带有空格的行分隔成几个单词/参数。
标签: linux macos unix command-line xargs