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

标签 linux macos unix command-line xargs

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

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

对于更健壮地使用 xargs 有什么建议吗?

这是 Mac OS X 10.5.3 (Leopard) 使用 BSD xargs.

最佳答案

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

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

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

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

关于linux - 如何使用 xargs 复制名称中包含空格和引号的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/143171/

相关文章:

linux - Zend框架主页

xml - Shell 脚本 - 将 xml 拆分为多个文件

swift - 在 Mac 上运行脚本提示 Error?

macos - 如何从 Mac OS X Dock 中隐藏应用程序图标

linux - 删除目录中的文件并排除其中的文件夹

windows - 从 Console2 复制到剪贴板

linux - 使用 date 命令比较时间

c - 为什么两个函数相互递归调用的 C 程序在 Linux 上会出现段错误?

Linux Bash - 将错误重定向到文件

node.js - 安装 MEAN Stack : npm -v module. js: 338 throw err;错误:找不到模块 './cache/caching-client.js'