次: , 前: Unsafe File Name Handling, 上: Multiple Files


3.3.2.2 安全なファイル名の扱い

findが出力したファイル名を,他のプログラムでめちゃくちゃにされた り誤解されたりしないで,他のプログラムで使用可能にする方法は以下のよう になります.この方法で生成されたファイル名に,`-0'や`--null' オプションを,GNU xargs,GNU tar,GNU cpio,または, perl に渡すことで,処理することが可能です.

— Action: -print0

真です.標準出力の完全なファイル名にヌル文字を続けて出力します.

— Action: -fprint0 file

真です.`-print0'ににていますが,fileを`-fprint'のように 書き出します(see Print File Name).

findutilsのバージョン4.2.4からは,locateプログラムにも同様なこと を行う`--null'オプションがあります.xargsと同様,短い形式の オプション`-0'も使用することが可能です.

ファイル名を安全に処理したいが,コマンドを入力の終わりに繋げて実行する 必要がある場合,以下のようにxargsの`--arg-file'オプションを 使用することが可能です.

     find / -name xyzzy -print0 > list
     xargs --null --arg-file=list munge

上記の例では,見つけることができたxyzzyと命名されたすべてのファ イルで,mungeプログラムを実行しまが,mungeの入力は端末に なっています(また,実際にはシェルが標準入力を使用しています).シェルに “処理の代入”機能`<(...)'がある場合,ワンステップで実行することが 可能です.

     xargs --null --arg-file=<(find / -name xyzzy -print0) munge