我想使用命令计算主目录中的所有普通文件:
$ 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
看来您的某些文件名中包含撇号(单引号)。
幸运的是,find
和xargs
有办法解决这个问题。find
的-print0
选项以及xargs
的选项生成并使用由( ) 字符-0
分隔的文件名列表。 Linux 中的文件名可以包含任何字符,除了和。 NUL
\000
NUL
/
所以,你真正想要的是:
find ~ -type f -print0 | xargs -0 --no-run-if-empty wc -w
读man find;man xargs
。