find -print0 -name" * *" (空白)

时间:2017-10-10 01:05:45

标签: find pipe whitespace

有没有办法将包含空格的所有文件名传递给管道,或者至少包含空格的文件名?为此我试图:

~/Desktop> find . -type f -mindepth 1 -maxdepth 1  -name "* *" | wc -c
       0
~/Desktop> find . -type f -mindepth 1 -maxdepth 1 -print0  -name "* *" | wc -c
     247
~/Desktop> 

如您所见,没有-print0的命令准确地找不到当前目录中包含空格的文件。但是添加-print0后,-name选项显然不会像我期望的那样被解释。

甚至比

更好
-name "* *"

将指定任何空格,而不仅仅是空格。理想情况下,这可以在查找中完成,而不是诉诸于下游"使用perl正则表达式处理。 最后,我想将文件名传递给一个脚本,该脚本将用我指定的某个字符替换空格。

1 个答案:

答案 0 :(得分:1)

订单很重要。这将打印每个名称,因为-print操作位于-name过滤器之前:

find . -print -name "foo"

这将仅打印名为foo的那些,因为操作位于过滤器之后:

find . -name "foo" -print