Perl을 사용하여 파일이 바이너리인지 텍스트인지 확인하는 bash 스크립트는 무엇입니까?

Perl을 사용하여 파일이 바이너리인지 텍스트인지 확인하는 bash 스크립트는 무엇입니까?

누군가 이 bash 스크립트 조각이 어떻게 작동하는지 설명해 줄 수 있나요?

is_text_file() { 
    perl -e 'exit((-B $ARGV[0])?1:0);' "$1"
}

감사해요.

답변1

Perl에는 첫 번째 인수에서 호출되는 파일 유형 테스트 연산자가 있습니다. 그런 다음 삼항 연산자를 사용하여 True/False를 쉘 상태 0(isTxt) 또는 1(not)로 변환합니다. 이 함수에는 명시적인 반환 값이 없으므로 perl 명령 자체의 상태를 반환합니다. Bash 자체는 여기서 거의 아무것도 하지 않습니다.

-T  File is an ASCII or UTF-8 text file (heuristic guess).
-B  File is a "binary" file (opposite of -T).

"추측"이라는 단어에 주의를 기울이세요.

관련 정보