find -prune:-print0が検索結果に影響するのはなぜですか? [コピー]

find -prune:-print0が検索結果に影響するのはなぜですか? [コピー]

想像する:

$ 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

ベストアンサー1

find-prune(または以外の-quitジョブが指定されていない場合に使用されます)のデフォルトジョブはです-print

find . -name "x1.txt" -prune -o -name "*.txt"

-printすべての場合において暗黙的:

find . -name "x1.txt" -prune -print -o -name "*.txt" -print

またはより正確には、

find . \( -name "x1.txt" -prune -o -name "*.txt" \) -print

追加すると-print0デフォルト値が削除されます。

find . -name "x1.txt" -prune -o -name "*.txt" -print0

「名前が一致する場合はx1.txt切り取り、そうでない場合は一致する場合は*.txtNULLターミネータを使用して印刷します」を意味します。

おすすめ記事