Linux 檔案 MIME 型別簡介


簡介

MIME 型別是 Linux 檔案管理中的一個重要方面,它使作業系統能夠識別檔案格式並確定用於開啟檔案的適當程式。瞭解 MIME 型別非常有益,尤其是在處理 Linux 系統上的各種檔案格式時。本文概述了 MIME 型別,並解釋瞭如何在 Linux 上確定檔案的 MIME 型別。它還介紹了 xdg-mime 命令,這是一個強大的 Linux MIME 型別管理工具,允許使用者更改與特定檔案型別關聯的預設應用程式或新增新的 MIME 型別。瞭解如何管理 MIME 型別可以提高生產力並改善在 Linux 系統上處理檔案時的整體使用者體驗。

Linux 中的不同 MIME 型別

在 Linux 中,MIME 型別(多用途網際網路郵件擴充套件)用於根據檔案內容識別檔案型別,並將其與相應的應用程式關聯。以下是 Linux 中使用的一些最常見的 MIME 型別:

text/plain - Plain text files
text/html - HTML files
application/pdf - PDF documents
image/jpeg - JPEG image files
image/png - PNG image files
video/mp4 - MP4 video files
audio/mp3 - MP3 audio files
application/zip - ZIP compressed archive files
application/json - JSON data files
application/xml - XML data files

您可以使用“file”命令後跟檔名來檢視檔案的 MIME 型別。例如,“file document.pdf”將顯示“document.pdf”檔案的 MIME 型別為“application/pdf”。

瞭解 MIME 型別

雖然 MIME 型別是識別檔案型別的標準方法,但它並沒有儲存在 Linux 檔案系統中單個檔案中。

有兩種方法可以知道 MIME 型別:

  • 按副檔名檢視 MIME 型別

  • 按檔案內容檢視 MIME 型別

  • 按副檔名檢視 MIME 型別 — 確定 MIME 型別的一種方法是使用副檔名。但是,如果副檔名不正確或缺失,則此方法可能不正確。僅僅根據檔案的副檔名來確定 MIME 型別並不總是可靠的。

  • 按檔案內容檢視 MIME 型別 — 我們可以透過檔案內容獲取 MIME 型別。例如,JPG 圖片檔案具有獨特的十六進位制簽名,例如 FF D9 和 FF D8。這種方法更好,但需要額外的 I/O 工作,速度可能較慢。

總之,為了準確確定 Linux 中檔案的 MIME 型別,我們必須同時考慮副檔名和檔案內容的特定特徵。即使副檔名不正確或缺失,這種方法也能確保正確確定 MIME 型別。

使用 xdg-mime 命令發現檔案的 MIME 型別

xdg-mime 實用程式使用 shared-mime-info 資料庫來識別 MIME 型別。首先,它嘗試根據檔案的副檔名識別 MIME 型別。如果失敗,它將繼續分析檔案的內容。

您可以使用 xdg-mime 命令獲取 JPG 圖片檔案的 MIME 型別。這是一個示例:

示例

# Query the MIME type of the JPG image file
xdg-mime query filetype example.jpg

輸出

image/jpeg

輸出表明檔案 example.jpg 的 MIME 型別為“image/jpeg”,這意味著該檔案是 JPEG 圖片檔案。xdg-mime 命令根據檔案內容而不是副檔名來確定 MIME 型別。在這種情況下,檔案的內容表明它是一個 JPEG 圖片檔案,這就是命令返回“image/jpeg”的原因。

示例

讓我們修改副檔名並觀察 xdg-mime 命令的輸出。

$ mv example.jpg example.zip

$ xdg-mime query filetype example.zip

輸出

application/zip

因此,它顯示了錯誤的 MIME 型別,因為 xdg-mime 命令最初根據副檔名在資料庫中搜索 MIME 型別。

示例

如果我們完全刪除副檔名,讓我們觀察結果:

$ mv example.zip example

$ xdg-mime query filetype example

輸出

image/jpeg

當使用 xdg-mime 命令無法透過副檔名確定 MIME 型別時,它將轉而根據檔案內容搜尋 MIME 型別。

file 命令

“file”命令通常包含在 FreeBSD 和 Linux 等免費作業系統中,並且可以與“--mime-type”選項一起使用以檢索給定檔案的 MIME 型別。

示例

$ file --mime-type example.jpg

輸出

example.jpg: image/jpeg

讓我們透過更改副檔名並驗證它是否仍然可以正確識別修改後的檔案的 MIME 型別來測試“file”命令輸出的準確性。

示例

$ mv example.jpg example.zip

$ file --mime-type example.zip

輸出

example.zip: image/jpeg

即使更改了副檔名,“file”命令仍然可靠,因為它不依賴於副檔名來識別檔案的 MIME 型別。相反,它檢查檔案的實際內容來做出此確定。這種方法使“file”命令在這種情況下更可靠。

我們刪除副檔名,並依賴於 file 命令的持續準確性。

示例

$ mv example.zip example

$ file --mime-type example

輸出

example: image/jpeg

正如我們所知,“file”命令不關注副檔名,它關注內容,這就是它顯示相同輸出的原因。

結論

Linux 使用 MIME 型別來解釋檔案,指示其格式以及如何顯示或開啟它們。“file”命令可以輕鬆識別 MIME 型別。您可以為無法識別的檔案格式註冊自定義 MIME 型別,MIME 型別在 Web 開發中至關重要,以便在瀏覽器中正確顯示網頁。

更新於:2023年3月29日

4K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.