GNU/Linux >> Linux の 問題 >  >> Linux

Findがパーミッションについて不満を言うパスを除外しますか?

ディスクボリュームからファイルリストを生成する必要があります。一部のディレクトリ(ルートディレクトリの下にあるすべての隠しディレクトリ)には、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

Linux
  1. findコマンドを使用して権限を監査する方法

  2. ユーザーが読み取れないファイルを見つけますか?

  3. 検索でディレクトリを除外しますか?

  1. 除外ディレクトリを検索しますか?

  2. Unix検索コマンドからディレクトリのリストを除外しますか?

  3. ファイルを見つけて、Linux でそのディレクトリに cd します

  1. bash ディレクトリ検索

  2. ファイルのリストを検索から除外する

  3. Linux ターミナルでのディレクトリの検索