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

バイナリファイルを除くすべてのサブディレクトリ内のすべての通常ファイルを一覧表示/検索します

file /usr/bin/file たとえば、システムの出力に「バイナリ」という単語が含まれていません。 file -i の場合 利用可能ですが、「バイナリ」という単語が含まれています。 -i なし 、単語「テキスト」の存在をテストする方が信頼性が高い場合があります.

find -type f -exec sh -c "file {} | grep text >/dev/null" \; -print

または

find -type f -exec sh -c "file {} | grep text >/dev/null" \; -ls

-i の使用 :

find -type f -exec sh -c "file -i {} | grep -v binary >/dev/null" \; -print

file の使用 ファイルの種類を決定するためにヒューリスティックを使用しており、「バイナリ」ファイルを構成するものについての厳格な定義がないため、近似値にすぎません。空のファイルは「バイナリ」ですか? file だと言います。また、file までに偽陽性 ID をトリガーする (通常はまれな) 方法がたくさんあります。 .


もう 1 つの方法は、ユーザー、グループ、またはその他のいずれかに設定された実行権限を持つすべてのファイルを除外することです:

find . -type f ! -perm /u=x,g=x,o=x

(バイナリが実行権限に等しい場合...)


Linux
  1. 名前がファイルリストの行と一致しないディレクトリ内のすべてのファイルを削除しますか?

  2. ターミナルでマスクごとにすべてのファイルのリストを取得しますか?

  3. LinuxファイルシステムですべてのPythonファイルを検索しますか?

  1. すべてのファイルとディレクトリを再帰的に一覧表示する方法

  2. スペースを含むファイルのリストを反復処理する

  3. ディレクトリおよびサブディレクトリ内のすべてのゼロバイト ファイルを検索する

  1. Linuxですべてのディレクトリのファイルを再帰的に検索する方法

  2. 検索ですべてのグラフィック イメージ ファイルを一覧表示しますか?

  3. Linuxのviでfindによって返されたすべてのファイルを編集するにはどうすればよいですか?