我有一个使用生成的文件列表find
,我想将其馈送到(管道)到cp
.我的问题是文件中有空格和撇号,导致cp
反复抱怨它“无法统计”。这个问题有优雅的解决方案吗?
答案1
确保 find 命令中有 -print0。
find . -print0 | xargs -0 cmd ...
答案2
另一种选择是跳过-print0
和 管道,而是使用-exec cp {} path/to/dest/ +
或-exec cp {} path/to/dest \;
命令进行查找。第一个{}
立即替换为一大堆找到的文件名;第二个副本一次只能找到一个文件。这些命令存在于大多数查找实现中。