file(1) 및 Magic(5): 다른 형식 설명

file(1) 및 Magic(5): 다른 형식 설명

나는 사용할 수 file있고 magic(http://linux.die.net/man/5/magic) 다른 알려진 형식의 설명을 무시하려면?

예를 들어 다음 형식을 설명하고 싶습니다.

그냥 텍스트 파일이군요

또는

이것은 매직 넘버로 시작하는 "그냥" gzip 압축 파일입니다.BAM\1

?

어떤 예를 알고 있나요?

매직 형식을 사용하는 대신 파일을 테스트하기 위해 사용자 정의 C 코드를 제공할 수 있습니까?

답변1

-m옵션을 사용하여 대체 매직 파일 목록을 지정할 수 있으며, /usr/share/file/magic.mgc해당 목록(내 시스템)에서 컴파일된 매직 파일 앞에 자신의 매직 파일을 포함하는 경우 해당 모드는 "글로벌" 모드 전에 테스트됩니다. 명령을 실행하여 옵션이 항상 투명하게 사용되도록 함수나 별칭을 만들 수 있습니다 file.

매직 파일에 사용되는 언어는 매우 강력하므로 사용자 정의 C 인코딩으로 되돌릴 필요가 거의 없습니다. 내가 이 작업을 하려고 했던 유일한 때는 HTML과 XML 파일을 일치시키는 것이 어려웠던 90년대였습니다. 그 당시에는 하나의 패턴을 구문 분석하고 <HTML사용할 수 있는 유연한 대소문자 및 오프셋 일치를 가질 수 있는 방법이 없었기 때문입니다 < Html. < html. "문자열" 모드에 대한 수정자로 C에서 구현했습니다.대소문자를 무시하고 공백을 압축(선택 사항)할 수 있습니다..

이러한 변경은 C에 필요합니다.그리고 마법 문서의 각색. 그 이후로 소스 코드가 크게 변경되지 않은 한 이러한 C 코드 변경 사항과 일치하도록 항상 파일의 규칙을 수정(또는 추가 제공) file해야 합니다 . magic따라서 이를 달성하기 위해 매직 파일을 변경하려고 시도하고, 작동하지 않으면 C 코드를 다시 변경하는 것이 좋습니다.

답변2

이것을 발견한 다음 $(user_searchengine) 사용자의 경우:

BAM과 같은 간단한 규칙은 다음과 같습니다.
OFFSET TYPE [OPERAND]FLAG MESSAGE
BAM의 경우:
0 string BAM\1 BAM
헤더를 찾을 때 BAM 문자열이 인쇄됩니다.

더 많은 정보를 알고 싶다면이 IBM 사이트정보가 약간 오래된 것 같지만 간단한 사용 사례에는 여전히 충분합니다. 남성형식에 관한 풍부한 정보도 있습니다.

답변3

-m맨 페이지의 documentend는 file(1)기본적으로 해당 ~/.magic파일(또는 컴파일된 버전)을 읽기 때문에 항상 해당 옵션을 사용할 필요는 없습니다 . ~/.magic.mgc따라서 시스템 전체 /usr/share/magic*또는 /etc/magic.

관련 정보