識別文件類型杨幼,不依賴于后綴名撇簿。
該命令將按序運行三套識別模式,直至返回得到測試結(jié)果差购。
預設(shè)模式下四瘫,只分析普通文件的具體類型,不會嘗試讀取特殊文件的內(nèi)容欲逃,除非指定-s
參數(shù)找蜜。
識別模式
- 文件系統(tǒng)測試:檢驗文件是否為空文件,或是否為某一類特殊系統(tǒng)文件稳析,如socket洗做、軟鏈接、FIFO等彰居。
- magic file 測試:檢驗文件是否匹配某一類特定格式(通常為文件頭附近的特殊字節(jié)诚纸,稱為 magic number),識別為某一類已知的二進制文件陈惰,如可執(zhí)行文件畦徘,識別規(guī)則在
/usr/share/file/magic.mgc
等目錄中。 - 語言測試:檢驗文件是否為文本文件,識別其內(nèi)容字符集及文本類型屬性(如使用非標準的行結(jié)束符井辆,或包含轉(zhuǎn)義短句等)关筒,確定文件使用的字符集后,進一步推斷可能對應(yīng)的編程語言杯缺。該測試也包括檢查文件是否為 tar 文檔等雜項類型蒸播。如無法判斷其使用的字符集,則類型結(jié)果推定為
data
返回結(jié)果類型
- text:表示文件全由可打印字符和部分控制字符組成夺谁,并且很可能可通過 ASCII 終端訪問閱讀
- executable:可用于UNIX內(nèi)核等直接運行的編譯程序
- data:其他不屬于上述兩類的二進制文件(上述三組測試均無法確定的文件類型)
options
-b 摘要模式廉赔,不顯示文件名
-F separator 指定文件名:類型
結(jié)果分隔符,默認為冒號:
-f namefile 逐行讀取 namefile 文件匾鸥,并逐一識別其對應(yīng)的文件類型蜡塌,namefile 為空文件或指定為-
時,將讀取標準輸入勿负。該命令會優(yōu)先執(zhí)行文本解析馏艾,并作為目標文件列表參數(shù)提供,因此必須作為最后一個參數(shù)進行定義
-L 跟蹤符號鏈接奴愉,顯示其指向的文件類型(默認選項)
-h 不跟蹤符號鏈接琅摩,顯示其本身類型
-i 不判斷顯示普通文件的子類型
-I / --mime 顯示 MIME 類型格式
--mime-type 僅顯示 MIME 類型中的文件類型信息(忽略編碼格式等)
-k 執(zhí)行完整匹配識別模式,打印所有判斷結(jié)果
-p 分析時锭硼,不更新文件的 atime
-s 目標文件為塊文件或字符文件時房资,嘗試讀取其內(nèi)容,主要用于讀取位于另一 Raw 格式磁盤檀头、分區(qū)的數(shù)據(jù)文件類型
-z 嘗試讀取壓縮文件
magic 測試支持
-c 打印 magic 測試的執(zhí)行過程輸出轰异,常用于調(diào)試新編輯的 magic 文件
-C 以file -C [-m magic_list]
方式執(zhí)行,對目標 magic 文件編譯出 magic.mgc 文件
-m magic_list 使用指定的多個 magic 文件或其目錄暑始,使用冒號:
分割(優(yōu)先調(diào)用已編譯版本)
-d 使用系統(tǒng)定義的 magic 文件測試
-M magic_list 與-m
相同搭独,但不使用系統(tǒng)定義的 magic 文件測試