使用find选择要传递给另一个使用backticks/backquotes命令的文件,我注意到包含空格的文件名将被拆分,而fore则不被找到。
有可能避免这种行为吗?我发出的命令是这样的
wc `find . -name '*.txt'`
但是,例如当目录
a b c.txt
中有一个名为x
的文件时,它会报告$ wc `find . -name '*.txt'`
wc: ./x/a: No such file or directory
wc: b: No such file or directory
wc: c.txt: No such file or directory
与多个文件一起使用时,
wc
将显示每个文件的输出,以及包含所有文件总数的最终摘要行。所以我想执行一次wc。我尝试用sed转义空格,但是wc产生相同的输出(用空格分隔文件名)。
wc `find . -name '*.txt' | sed 's/ /\\\ /pg'`
最佳答案
使用-print0
选项find
和相应的-0
选项xargs
:
find . -name '*.txt' -print0 | xargs -0 wc
您也可以使用
-exec
选项来find
:find . -name '*.txt' -exec wc {} +
关于linux - 防止空间使用反引号分割文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30579964/