ファイル拡張子の制約がなくても、私のLinuxマシンで人間が読めるファイルを探したいと思っています。これらのファイルは、テキスト、構成、html、ソースコードなどの人間の感知ファイルでなければなりません。フィルタリングして見つける方法を提案できますか?Unix上で人間が読めるファイルを見つける
答えて
検索とファイルはここにあなたの友達です:
find /dir/to/search -type f -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
が、これは任意のファイルを検索します(注:これは、シンボリックリンクディレクトリソケットなどのみ通常のファイルを見つけることができません)へ/検索と実行のsh// DIRに - c 'ファイル-b {} | grep text &>/dev/null '\;ファイルのタイプを調べ、記述内のテキストを探します。 trueが返された場合(つまり、テキストが行内にある場合)、ファイル名が出力されます。
注:ファイルに-bフラグを使用すると、ファイル名が出力されないため、grepで問題を作成することはできません。たとえば、-bフラグを指定しないと、バイナリファイルのgettextは誤ってテキストファイルとして検出されます。
例えば
[email protected]# find /bin -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
/bin/gunzip
/bin/svnshell.sh
/bin/unicode_stop
/bin/unicode_start
/bin/zcat
/bin/redhat_lsb_init
[email protected]# find /bin -type f -name *text*
/bin/gettext
EDIT:
圧縮ファイルで見たい場合は、ファイルに--uncompressフラグを使用します。詳細情報とフラグをファイルにするためには、man file
私はUNIXのような生態系には新しいです。なぜあなたの '' grep'の最後に "&"を使用していますか?私の理解は、これはgrepを非同期で実行させることです。これは依然として 'find'に終了ステータスを与えますか?それはなぜでしょうか?答える時間をとっていただきありがとうございます。 –
を参照してください方法について
find /dir/to/search -type f | xargs file | grep text
find
はあなたのファイルのリストを提供します。
xargs file
は、パイプ入力から各行でfile
コマンドを実行します。
file directory/to/search/*
を使用
完璧に動作します!ニースの解決策。 – fuuman
:
file home/*
を、読み取り可能ファイルは、ASCIIテキスト
これは、ファイルタイプを手動でスキャンすることを除いて、ファイルをフィルタリングする方法を提供しません。 – blissfool
- 1. unixタイムスタンプをlaravelの人間が読める日付に変換する
- 2. 人間が読めるJSONファイルをPigにロードするには?
- 3. unix:大文字で始まるファイルを見つける
- 4. KNNが上位N個の隣人を見つける
- 5. UNIXでファイル内の文字列を見つけるための速い方法
- 6. ハスケル:人間が読める日付
- 7. Linuxカーネルの人間が読めるタイムスタンプ
- 8. ブーストエラーコード、人間が読める記述
- 9. Newtonsoft.Json.Schema.Generation:人間が読める「定義」セクション
- 10. Wicket人間が読めるURL
- 11. Sqlite:人間が読めるテーブルを持つデータベースミラー
- 12. Cシェル:ファイルを12時間以上見つける
- 13. Webkit/chromeタイムスタンプから人間が読める時間をjavaで
- 14. llvm .bcファイルを人間が読める.llファイルに変換する
- 15. ASCIIファイルを人間が読める形式のファイルに変換する
- 16. 絶対パスのリストがunixで存在するファイルを見つける方法
- 17. dmesg人間が読める時間を印刷する
- 18. ASCII以外の文字を見つけるためのUnixコマンド
- 19. 人間が読めるBashですべてのファイルを数えるには?
- 20. Facebook上の場所から人を見つける
- 21. MongoDbで人間が読めるIDを作成するには
- 22. Unixで$ Promptを見つけることができません
- 23. 人間が読める日時をUnixの時間浮動小数点に変換
- 24. 見つけ、bashのUNIX
- 25. C#オブジェクトを人間が読める形式でファイルに書き込む
- 26. 人間の読めるUTC日時
- 27. OSX/UnixのDropboxの「競合のコピーを見つけるためのコマンドを見つけることは
- 28. ファイル名を見つけるために助けが必要
- 29. unixの文字列間に1つ以上の空白を含む行を見つけるには?
- 30. Unix上でコンパイルされたライブラリの依存関係を見つける
などのフォーマットを持っています'file'ユーティリティは、ファイル内のコンテンツのタイプを判断するのに非常に優れています。おそらく、あなたはこのファイルを使用してその出力に基づいてファイルをフィルタリングすることができます。 – cdhowie
AFAIKのみWindowsはファイル拡張子を信頼します。 UNIXのようなOSは 'file'を使います。とにかく、 "人間が読める"と定義する必要があります。 – m0skit0
これはどれくらい正確にする必要がありますか?そして、あなたはシステム内のあらゆるファイルを探していますか、あるいはシステムの選択された部分だけを探していますか?システムに何千台ものディスクが接続されている場合、実際にすべてのファイルを読み取るのにどれくらいの時間がかかるので、何時間も待つことは可能ですか? –