Files
用於深度檢查的更複雜的文件命令?
有時似乎標準
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,它只是一個 .zip 容器,裡面有一些標準化的 .xml 文件等(
file
顯示“數據”)這種包含存檔的 .exe 文件的範例- 我猜到了一些存檔格式並嘗試了相應的 unpack-commands 並嘗試了一種嘗試錯誤的方法 - 最終奏效了 - 但我寧願更喜歡自動檢查面向工作流。
我想不出一個多合一的工具,但是有些程序可以處理給定類別的大量文件。
例如,p7zip可以辨識大量的存檔格式,因此如果您懷疑某個文件是存檔,請嘗試
7z l
在其上執行。$ 7z l ta12b563enu.exe … Type = Cab Method = MSZip …
如果您懷疑文件是圖像,請嘗試ImageMagick。
$ 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
無法辨識的文件,您可能會向您的魔法庫的作者提出功能請求。
沒有錯
file
。它正在做它應該做的事情:根據文件中的規則檢查magic(5)
文件。如果您想提出一種通用的方法來辨識這些類型的文件,那麼您可以送出新的魔術規則。閱讀手冊頁以magic
獲取更多資訊。我懷疑
file
永遠不會做的一件事是“檢測連接”。如果不掃描文件中的每個字節,就無法確定下一段何時開始——有些事情file
不做,或者想做。順便說一句,要區分 epub 文件,您需要檢測它與使用相同基本結構的 ear 文件之間的差異。