设想:
$ tree .
.
├── x1.txt
├── x2.txt
└── x3.txt
0 directories, 3 files
$ find . -name "x1.txt" -prune -o -name "*.txt"
./x1.txt
./x2.txt
./x3.txt
$ find . -name "x1.txt" -prune -o -name "*.txt" -print0
./x2.txt./x3.txt
在这里我们看到这-print0
确实会影响搜索结果。使困惑。
为什么存在-print0
导致find ...
不打印x1.txt
?
-print0
为什么没有find ...
打印x1.txt
?
find
的默认操作(当除了-prune
或 之外没有-quit
指定任何操作时使用)是-print
; 在在所有情况下都隐含着
-print
:或者更准确地说,
添加
-print0
会删除默认值,因此意思是“如果名称匹配
x1.txt
,则修剪它;否则,如果匹配*.txt
,则打印它,并使用空终止符”。