예, find
적절한 크기의 실행 파일이 아닌 파일을 찾은 다음 file
ASCII를 확인 하는 데 사용할 수 있습니다. 다음과 같은 것 :
find . -type f -size 1033c ! -executable -exec file {} + | grep ASCII
그러나 질문은 들리는 것처럼 간단하지 않습니다. '인간이 읽을 수 있음'은 끔찍한 모호한 용어입니다. 아마도, 당신은 텍스트를 의미합니다. 좋아, 그러나 어떤 종류의 텍스트? 라틴 문자 ASCII 만? 완전한 유니 코드? 예를 들어 다음 세 파일을 고려하십시오.
$ 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
.