有没有办法将包含空格的所有文件名传递给管道,或者至少包含空格的文件名?为此我试图:
~/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正则表达式处理。 最后,我想将文件名传递给一个脚本,该脚本将用我指定的某个字符替换空格。
答案 0 :(得分:1)
订单很重要。这将打印每个名称,因为-print
操作位于-name
过滤器之前:
find . -print -name "foo"
这将仅打印名为foo
的那些,因为操作位于过滤器之后:
find . -name "foo" -print