파일 명령에서 "마법 테스트"는 무엇을 의미합니까?

파일 명령에서 "마법 테스트"는 무엇을 의미합니까?

이 명령에 대해 읽으 file면서 잘 이해되지 않는 내용을 발견했습니다.

file은 쿼리되는 파일의 유형을 결정하도록 설계되었습니다.... file은 다음을 실행하여 이 작업을 수행합니다.관련 파일에 대해 일련의 테스트를 실행합니다.

  • 파일 시스템 테스트,
  • 마법시험,
  • 언어 테스트

무엇인가요마법시험?

답변1

여기서 '마법'은 '마법'을 뜻합니다.매직넘버": 해당 유형을 식별하는 파일의 알려진 위치에 있는 특수 값입니다. 명령에는 file이러한 숫자와 해당 유형의 데이터베이스가 있습니다. 이 데이터베이스와 함께 사용되는 라이브러리는libmagic, 자신의 프로그램 내에서 액세스할 수 있습니다.

그것들은 우리가 상상하는 "숫자"일 필요는 없습니다. 예를 들어 PNG 이미지 파일은 항상 "\x89PNG\r\n\x1a\n"으로 시작하고, Java 클래스는 4바이트(16진수) CA FE BA BE로 시작하고, HTML 파일은 어딘가에 "< html"이 있어야 시작할 시간이 거의 다가왔습니다. 이는 해당 유형의 파일에서 알려진 일부 작은 데이터 시퀀스이며 일반적으로 시작 부분에 가깝습니다.

사람들은 파일 형식을 정의할 때 의도적으로 그 중 하나를 포함하거나 단순히 형식을 서로 맞추는 과정의 일부로 포함하는 경우가 많습니다. file나중에 사용할 수 있습니다. 또한 실제로 파일의 내용을 보고 그것이 무엇인지 추측하는 다른 방법("언어 테스트")도 있습니다.

답변2

이는 많은 파일 형식이 파일 시작 부분에 있는 "매직 바이트"를 의미하며, 이는 파일 유형을 나타냅니다.

예를 들어 파일이 then 으로 시작하면 #!스크립트로 간주됩니다.

관련 정보