用途:
find /dir/to/search -type f | xargs file | grep text
find
ファイルのリストが表示されます。
xargs file
file
を実行します パイプ入力からの各行のコマンド。
見つける およびファイル ここにあなたの友達はいますか:
find /dir/to/search -type f -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
これにより、/dir/to/search 内のすべてのファイルが検索されます (注:シンボリック リンク ディレクトリ ソケットなどは検索されず、通常のファイルのみが検索されます)。 sh -c 'file -b {} | を実行します。 grep テキスト &>/dev/null';ファイルの種類を見て、説明のテキストを探します。これが true を返す場合 (つまり、テキストが行内にある場合)、ファイル名を出力します。
注:file に -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
圧縮ファイルを調べたい場合は、--uncompress
を使用します ファイルへのフラグ。詳細とファイルへのフラグについては、man ファイルを参照してください。