file [options] file

識別文件類型,不依賴于后綴名。
該命令將按序運行三套識別模式,直至返回得到測試結果。
預設模式下,只分析普通文件的具體類型,不會嘗試讀取特殊文件的內容,除非指定-s參數。

識別模式

  1. 文件系統測試:檢驗文件是否為空文件,或是否為某一類特殊系統文件,如socket、軟鏈接、FIFO等。
  2. magic file 測試:檢驗文件是否匹配某一類特定格式(通常為文件頭附近的特殊字節,稱為 magic number),識別為某一類已知的二進制文件,如可執行文件,識別規則在/usr/share/file/magic.mgc等目錄中。
  3. 語言測試:檢驗文件是否為文本文件,識別其內容字符集及文本類型屬性(如使用非標準的行結束符,或包含轉義短句等),確定文件使用的字符集后,進一步推斷可能對應的編程語言。該測試也包括檢查文件是否為 tar 文檔等雜項類型。如無法判斷其使用的字符集,則類型結果推定為data

返回結果類型

  1. text:表示文件全由可打印字符和部分控制字符組成,并且很可能可通過 ASCII 終端訪問閱讀
  2. executable:可用于UNIX內核等直接運行的編譯程序
  3. data:其他不屬于上述兩類的二進制文件(上述三組測試均無法確定的文件類型)

options

-b 摘要模式,不顯示文件名
-F separator 指定文件名:類型結果分隔符,默認為冒號:
-f namefile 逐行讀取 namefile 文件,并逐一識別其對應的文件類型,namefile 為空文件或指定為-時,將讀取標準輸入。該命令會優先執行文本解析,并作為目標文件列表參數提供,因此必須作為最后一個參數進行定義
-L 跟蹤符號鏈接,顯示其指向的文件類型(默認選項)
-h 不跟蹤符號鏈接,顯示其本身類型
-i 不判斷顯示普通文件的子類型
-I / --mime 顯示 MIME 類型格式
--mime-type 僅顯示 MIME 類型中的文件類型信息(忽略編碼格式等)
-k 執行完整匹配識別模式,打印所有判斷結果
-p 分析時,不更新文件的 atime
-s 目標文件為塊文件或字符文件時,嘗試讀取其內容,主要用于讀取位于另一 Raw 格式磁盤、分區的數據文件類型
-z 嘗試讀取壓縮文件

magic 測試支持

-c 打印 magic 測試的執行過程輸出,常用于調試新編輯的 magic 文件
-C 以file -C [-m magic_list]方式執行,對目標 magic 文件編譯出 magic.mgc 文件
-m magic_list 使用指定的多個 magic 文件或其目錄,使用冒號:分割(優先調用已編譯版本)
-d 使用系統定義的 magic 文件測試
-M magic_list 與-m相同,但不使用系統定義的 magic 文件測試

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,467評論 9 467
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,203評論 2 33
  • 婷叔閱讀 184評論 0 0
  • 最近看了王森的《就想開間小小咖啡館》,感觸頗深,或許是某種想法和作者的思想產生了共鳴的緣故吧。 書里寫了他創業的經...
    Nolanyoung閱讀 502評論 0 1