xargs:不匹配的单引号;默认情况下,引号对 xargs 来说是特殊的,除非您使用 -0 选项

xargs:不匹配的单引号;默认情况下,引号对 xargs 来说是特殊的,除非您使用 -0 选项

我想使用命令计算主目录中的所有普通文件:

$ find ~ -type f | xargs echo | wc -w
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

它提示

xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

使用上存在什么问题?

答案1

看来您的某些文件名中包含撇号(单引号)。

幸运的是,findxargs有办法解决这个问题。find-print0选项以及xargs的选项生成并使用由( ) 字符-0分隔的文件名列表。 Linux 中的文件名可以包含任何字符,除了和。 NUL\000NUL/

所以,你真正想要的是:

 find ~ -type f -print0 | xargs -0 --no-run-if-empty wc -w

man find;man xargs

相关内容