가끔은 평범해 보여file
주문하다(내 Ubuntu 시스템에서는 5.04) 충분히 복잡하지 않습니다(또는 잘못 사용하고 있을 가능성이 높습니다).
예를 들어, 파일에 대해 이것을 실행하고 .exe
그 파일에 일부 아카이브가 포함되어 있다고 확신할 때 출력은 다음과 같기를 원합니다.
$ improved-file foo.exe
foo.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
.zip archive included (just use unzip to extract)
기타 사항:
- 다른 형식의 연결을 감지하지 않습니다.
- .epub와 같은 일반적인 파일 형식은 감지하지 못합니다. 내부에 일부 표준화된 .xml 파일 등이 포함된 .zip 컨테이너일 뿐입니다(
file
"데이터" 표시).
하나해당 .exe 파일의 예아카이브 포함 - 몇 가지 아카이브 형식을 추측하고 시행착오 접근 방식을 사용하여 해당 압축 풀기 명령을 시도했지만 결국 효과가 있었지만 자동화된 검사 지향적인 워크플로를 선호합니다.
답변1
일체형 도구는 생각나지 않지만 특정 카테고리에서 많은 수의 파일을 처리할 수 있는 프로그램이 있습니다.
예를 들어,p7zip다양한 아카이브 형식이 인식되므로 파일이 아카이브라고 의심되면 7z l
실행해 보세요.
$ 7z l ta12b563enu.exe
…
Type = Cab
Method = MSZip
…
파일이 이미지라고 의심되면 다음을 시도해 보세요.이미지 마술사.
$ identify keyboard.jpg.gz
keyboard.jpg.gz=>/tmp/magick-XXV8aR5R JPEG 639x426 639x426+0+0 8-bit DirectClass 37.5KB 0.000u 0:00.000
오디오 또는 비디오 파일의 경우 mplayer -identify -frames 0
.
인식할 수 없는 파일을 발견하면 file
문의하세요.당신의 마법 도서관의 저자.
답변2
괜찮아요 file
. 그것은 해야 할 일을 하고 있습니다: 파일의 규칙에 대해 파일을 확인하는 것입니다 magic(5)
. 이러한 유형의 파일을 식별하는 일반적인 방법을 찾으려면 새로운 마법 규칙을 제출할 수 있습니다. 자세한 내용은 맨페이지를 읽어보세요 magic
.
file
내가 결코 할 수 없을 것으로 생각되는 한 가지는 "연결 감지"입니다. 파일의 모든 바이트를 스캔하지 않고는 다음 세그먼트가 언제 시작되는지 알 수 있는 방법이 없습니다. 무언가가 file
완료되지 않았거나 완료되기를 원하지 않습니다.
그런데 epub 파일을 구별하려면 동일한 기본 구조를 사용하는 Ear 파일과의 차이점을 감지해야 합니다.