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 ')'