ファイル拡張子の制約がなくても、私の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. KNNが上位N個の隣人を見つける
- 2. UNIXでファイル内の文字列を見つけるための速い方法
- 3. ブーストエラーコード、人間が読める記述
- 4. ハスケル:人間が読める日付
- 5. Wicket人間が読めるURL
- 6. Linuxカーネルの人間が読めるタイムスタンプ
- 7. ASCIIファイルを人間が読める形式のファイルに変換する
- 8. llvm .bcファイルを人間が読める.llファイルに変換する
- 9. ASCII以外の文字を見つけるためのUnixコマンド
- 10. 人間が読めるBashですべてのファイルを数えるには?
- 11. Facebook上の場所から人を見つける
- 12. MongoDbで人間が読めるIDを作成するには
- 13. ファイル名を見つけるために助けが必要
- 14. unixの文字列間に1つ以上の空白を含む行を見つけるには?
- 15. Unix上でコンパイルされたライブラリの依存関係を見つける
- 16. 人間が読める文書はSpockで可能ですか?
- 17. Perlがリモートマシン上のファイルを見つける
- 18. PLCrashReporter:人間が読めるスタックトレースを作成する
- 19. C++コードから人間が読めるASTを取得する
- 20. Django-tastypie。ブラウザでもっと人間が読めるJSON
- 21. protobuf-netで人間が読める形式
- 22. ファイルを見つけて、名前を変えてunix bash
- 23. /varディレクトリのcatalina.outファイルを見つけるunixコマンドは何ですか?
- 24. Pythonで上向きのファイルを見つけるには?
- 25. UNIX上のプロセスのデッドロック理由を実際に見つける方法
- 26. SQLで2人のパーティー間の最初のメッセージを見つけるには?
- 27. 'type'を人間が読める文字列として返す
- 28. javaでEDT時間を見つける
- 29. 時間で空室を見つける
- 30. GNUで見つかるUnixファイルを自動更新する
などのフォーマットを持っています'file'ユーティリティは、ファイル内のコンテンツのタイプを判断するのに非常に優れています。おそらく、あなたはこのファイルを使用してその出力に基づいてファイルをフィルタリングすることができます。 – cdhowie
AFAIKのみWindowsはファイル拡張子を信頼します。 UNIXのようなOSは 'file'を使います。とにかく、 "人間が読める"と定義する必要があります。 – m0skit0
これはどれくらい正確にする必要がありますか?そして、あなたはシステム内のあらゆるファイルを探していますか、あるいはシステムの選択された部分だけを探していますか?システムに何千台ものディスクが接続されている場合、実際にすべてのファイルを読み取るのにどれくらいの時間がかかるので、何時間も待つことは可能ですか? –