find
と xargs
を使用することが多い.
しかし, とくにオプションを使用しないと,
ファイル名にスペースが含まれている場合に問題が生じる.
find
は改行を区切り文字とし,
xargs
はスペース (改行を含む) を区切り文字としているためである.
以下のように, 区切り文字を NUL (\0) とするオプションを使用することで, このような問題を回避できる.
find ... -print0 | xargs -0 ...いつもこのオプションを付けておくようにしたい.
よく使用する例
find -type f -print0 | xargs -0 chmod -xWindowsユーザの典型的な特徴として, ZIPで圧縮する, 空白をファイル名に使用するという点がある. ZIPで圧縮されたファイルを展開するとすべてに実行権がついてしまう (ことがある) ので, 上記のコマンドを打つ.
0 件のコメント:
コメントを投稿