如何 grep 和复制名称中包含空格的文件

How to grep and copy files with spaces in their names

我有一些文件名中有空格。我想选择所有包含特定文本的文件,并将这些文件复制到另一个目录。我可以使用 grep 来完成第一部分,但无法将文件名列表传送到 cpcp 总是根据空格对文件名进行切片。我试过 xargs --null,但效果不佳。有什么实际的解决办法吗?

grepxargs 使用 --null 选项:

grep --null --files-with-matches 'word' * | xargs --null cp -t "$target_dir"

--null 选项导致命令以零字节而不是换行符终止文件名。