iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
Security

從0基礎開始起飛,一起一步步踏入資安系列 第 13

[ Day 13 ] 別在看著奇怪的檔名疑惑了 ! Linux指令 - file

  • 分享至 

  • xImage
  •  

你常常在整理檔案時看著奇怪的檔名而感到困惑嗎?
常常解題時看不出來下載的檔案到底是什麼嗎?

這次要介紹的是一個用來解決這些煩惱的Linux 指令 — file。

在 Linux 系統中,file 指令用來判斷並顯示檔案的型態。

不同於單純依照副檔名判斷(例如 .txt、.jpg),file 是透過檔案的 魔術數 (magic number)、檔頭資訊、編碼特徵等方式來判斷,所以就算把一張圖片改成 test.txt,它依然能辨識出檔案實際上是 JPEG 格式。
file [options] 檔名

基本用法

  1. 判斷單一檔案型態

    file test.txt
    

    輸出:

    test.txt: ASCII text
    

    表示 test.txt 是一個純文字檔。

  2. 判斷圖片檔

    file image.png
    

    輸出:

    image.png: PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced
    
  3. 判斷二進位檔

    file a.out
    

    輸出:

    a.out: ELF 64-bit LSB executable, x86-64
    

參數

  1. -b ( brief ) : 僅顯示檔案型態,不顯示檔名。

    file -b test.txt
    

    輸出:

    ASCII text
    
  2. -i ( mime-type ) : 顯示檔案的 MIME 類型。

    Multipurpose Internet Mail Extensions,用來描述檔案型態的標準,最早是郵件傳輸協定用的。

    • text/plain → 純文字
    • text/html → HTML 網頁
    • image/png → PNG 圖片
    • application/pdf → PDF 文件
    file -i test.txt
    

    輸出:

    test.txt: text/plain; charset=us-ascii
    
  3. -f ( file list ) : 讓 file 從一個清單檔中讀取要判斷的檔案名稱。

    file -f list.txt
    

    會顯示 list.txt 檔案中每個命名檔案類型。

  4. -z (檢查壓縮檔內部) : 嘗試判斷壓縮檔內容。

    file -z file.gz
    
  5. -L ( follow symlink ) : 判斷符號連結指向的實際檔案的型態。

    file -L symlink.txt
    
  6. -m ( magic file ) : 依據魔數 ( magic number ) 來判斷檔案。

    預設情況下,它會用系統內建的 magic database,也可以自訂

    file -m textfile   # 用預設的
    file -m mymagic textfile  # 用 mymagic 裡的規則來解析 textfile
    

常用組合

  1. 檢查整個資料夾

    file *
    

    列出當前資料夾內所有檔案的型態。

  2. 過濾結果

    file * | grep image
    

    找出目前資料夾下所有圖片檔。

  3. file 後也可以用路徑

    file /var/mail
    

上一篇
[ Day 12 ] 你知道怎麼find你想要的東西嗎? Linux指令 - find
系列文
從0基礎開始起飛,一起一步步踏入資安13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言