manページやその他のリファレンスを読みましたが、find with -print0
optionの動作にはまだ混乱しています。
-print0 This primary always evaluates to true. It prints the pathname of
the current file to standard output, followed by an ASCII NUL
character (character code 0).
最初のコマンド:
$ find /some/path/ -iname "*intro*jpeg" -o -iname "*intro*jpg" 2> /dev/null
/some/path//asdf199Intro-5kqlw.jpeg
/some/path/199intro-2jjaj.JPEG
/some/path/199intro-3.jpg
/some/path/wuer199intro-4.JPG
/some/path/xbzf199INTRO-1.jpg
2番目のコマンド:
$ find /some/path/ -iname "*intro*jpeg" -o -iname "*intro*jpg" 2> /dev/null -print0
/some/path/136intro-3.jpg/some/path/wuer136intro-4.JPG/some/path/xbzf136INTRO-1.jpg
2番目のコマンドのファイル名がnull文字で区切られていることがわかりますが、上記の5ではなく3つの出力が表示されるのはなぜですか。
1
技術的には、ヌル区切りではなく、ヌルで終了します。(最後のパス名を含むすべてのパス名の後にNULがあります。)
—
cjm