検索で-lsエラーを無視する方法

検索で-lsエラーを無視する方法

find権限が破損したファイルまたはフォルダ(ファイルが存在するrwディレクトリ)を見つけて、結果を提供またはインポートするrwxコマンドを作成しています。ls -l

次のfindコマンドは機能しているようですが、このls部分は問題を引き起こします。

find . '(' -not -readable ')' -or \
       '(' -not -writable ')' -or \
       '(' '(' -not -executable ')' -and -type d ')'

-ls最後にまたはを追加すると、-exec ls -l {} \;読み取れないディレクトリに到達するまで機能します。これによりpermission deniedエラーが発生し、完了せずに完全に終了します。ls -ld $(<that command>)私が知っている限り動作しますが、何か抜けたような気がしますfind

しかし、POSIX準拠について心配しないので、読みやすさを高めるのを待つ-orよりも使いたいです-o

答え1

実行不可能なディレクトリに到達した後にfind入ろうとしますが、実行不可能なので入ることはできません。それを使用しないでくださいと言わなければなりません-prune

そして、段落が発生しないように、条件を最初に設定してください。

find . '(' '(' -not -executable ')' -and -type d -and -prune ')' -or \
       '(' -not -readable ')' -or \
       '(' -not -writable ')'

関連情報