はい、find適切なサイズの非実行可能ファイルを検索してfileから、ASCIIを確認するために使用できます。何かのようなもの:
find . -type f -size 1033c ! -executable -exec file {} + | grep ASCII
しかし、質問は思ったほど簡単ではありません。「人間が読める」というのは恐ろしく曖昧な用語です。おそらく、あなたはテキストを意味します。わかりましたが、どのようなテキストですか?ラテン文字ASCIIのみ?完全なユニコード?たとえば、次の3つのファイルについて考えます。
$ cat file1
abcde
$ cat file2
αβγδε
$ cat file3
abcde
αβγδε
$ cat file4
#!/bin/sh
echo foo
これらはすべてテキストであり、人間が読むことができます。それでは、fileそれらが何でできているのか見てみましょう。
$ file *
file1: ASCII text
file2: UTF-8 Unicode text
file3: UTF-8 Unicode text
file4: POSIX shell script, ASCII text executable
したがって、find上記のコマンドは検索のみを行いますfile1(この例のために、これらのファイルには1033文字が含まれていると想像してください)。を展開findして文字列を探すことができますtext:
find . -type f -size 1033c ! -executable -exec file {} + | grep -w text
を使用すると-w、スタンドアロンの単語として見つかったgrep行のみが印刷textされます。それはあなたが望むものにかなり近いはずですが、説明に文字列が含まれている可能性のある他のファイルタイプがないことを保証することはできませんtext。