ディスクボリュームからファイルリストを生成する必要があります。一部のディレクトリ(ルートディレクトリの下にあるすべての隠しディレクトリ)には、findが文句を言う原因となる奇妙な権限があります。
これらすべてのパスを除外しようとしましたが、1つのディレクトリでまだ文句があります:
find . -type f -not -path './.*/*'
find: ./.DocumentRevisions-V100: Permission denied
権利は次のようなものです(オペレーティングシステムによって設定されているので、混乱させてはいけないと思います)。
d--x--x--x root wheel .DocumentRevisions-V100
find
を変更するにはどうすればよいですか 不平を言わないようにすべての隠しディレクトリを効果的に省略するステートメント。 (2>/dev/null
はやりたくない 他の問題について知りたいので)
承認された回答:
GNUfindまたは-readable
をサポートするその他の検索 および-executable
述語:
find . -type d ! ( -readable -executable ) -prune -o -type f -not -path './.*/*' -print
まず、トラバースできないディレクトリを整理します。その条件が当てはまらない場合は、他の条件を試してください。
find
の場合 これらのオプションがない場合は、ファイルのアクセス許可と照合できます。
find . -type d ! -perm -u+rx -prune -o -type f ! -path './.*/*' -print