file(1) 명령이 예기치 않게 동작하는 원인은 무엇입니까?

file(1) 명령이 예기치 않게 동작하는 원인은 무엇입니까?

file(1)명령이 MIME 유형으로 출력되도록 하는 원인 application/msword application/msword(예, 연속 두 번)일부.doc 파일? 일반적으로 그냥 인쇄됩니다 application/msword.

--mime이 옵션 없이 실행 하면 Microsoft Office Document"일반" 및 "특수" .doc 파일이 인쇄됩니다.

답변1

Magic(5) 매뉴얼 페이지에서:

일부 파일 형식에는 파일 형식과 함께 인쇄되는 추가 정보가 포함되어 있거나 실제 파일 형식을 확인하기 위해 추가 테스트가 필요합니다. 이러한 추가 테스트는 오프셋 앞에 하나 이상의 > 문자로 시작됩니다. 줄의 숫자 >는 테스트 수준을 나타내며, 처음에 >가 없는 줄은 수준 0으로 간주됩니다. 테스트는 트리 계층 구조로 배열됩니다. n 수준의 행에 대한 테스트가 성공하면 n+1 수준의 모든 후속 테스트가 실행되고, 테스트가 성공하면 n 수준(또는 그 이하)의 행이 나타날 때까지 메시지가 인쇄됩니다. . 보다 복잡한 파일의 경우 다음과 같이 빈 메시지를 사용하여 "if/then" 효과를 얻을 수 있습니다.

       0      string   MZ
       >0x18  leshort  <0x40   MS-DOS executable
       >0x18  leshort  >0x3f   extended PC executable (e.g., MS Windows)

Scientific Linux 5.5 시스템에서 /usr/share/file/magic.mime라인 836..838은 다음과 같습니다:

0       string  \320\317\021\340\241\261\032\341        application/msword
>546    string  bjbj                    application/msword
>546    string  jbjb                    application/msword

따라서 첫 번째 줄이 일치하면 주어진 위치에서 합계가 file확인 되고 bjbj성공 시 추가 문자열이 인쇄됩니다.jbjbapplication/msword

참고: 이 파일을 복구하려면 텍스트 버전보다 file -C바이너리 버전 을 선호 /usr/share/file/magic.mime.mgc하므로 해당 버전을 삭제하거나, 이름을 바꾸거나, 재생성(사용)해야 합니다.file

관련 정보