在類 UNIX 系統中,文件名可能與其實際類型完全不同。在某些情況下,它們甚至沒有有效的擴展名。因此,它會使數據管理變得更加復雜。為了方便地組織信息,Linux 提供了一個名為文件命令的程序。它主要用于確定文件類型——美國信息交換標準代碼 (ASCII) 文本或多用途 Internet 郵件擴展 (MIME) 格式。在本教程中,您將了解使用該程序的基礎知識以及它如何增強您的服務器管理和 Linux 操作技能。
了解 Linux 文件命令語法
要在VPS 主機上使用 Linux 文件命令,您必須將它與 SSH 客戶端(例如 PuTTY 或終端)連接。
在開始之前,我們先分析一下file命令的基本語法:
文件 [選項] [文件名]
- file?– 指示 shell 執行文件命令。
- [options]?– 修改命令的操作。
- [文件名]?– 插入您要檢查的文件名。
執行時,該命令不考慮文件擴展名。相反,它會運行三個測試來確定文件類型:
- 文件系統測試——檢查 stat 系統調用的返回。該程序會檢查它是空文件還是特殊文件類型。它還會查找與您使用的系統相關的已知格式(如果它們在系統頭文件中指定)。
- 魔術測試——使用魔術數字,文件開頭的一串短數字,來檢查它是否是二進制可執行數據。如果是,程序將確定它的類型。運行此測試的必要信息可從已編譯的魔術文件中的/etc/magic或/usr/share/misc/magic中獲得。
- 語言測試——檢查寫入文件的字符集,例如 ASCII 文本或 UTF-8。它還會查找出現在前幾行中的任何特殊序列。但是,此測試不如前兩個測試準確,因此最后執行。
命令的輸出使用標準格式顯示文件類型。根據命令選項,它可能會提供其他信息,例如壓縮文件中存儲的數據、大小或版本。
在練習命令選項之前,使用 nano 編輯器創建一個名為test.txt的示例文本:
納米測試.txt
命令行打開新文件后,寫幾行文本并按Ctrl + X和Y退出并保存更改。
輸入Linux文件命令查看test.txt文件是否創建成功:
文件測試.txt
輸出將顯示創建了一個ASCII文本文件:
Linux 文件命令的使用方法
語法中的選項允許您將變量添加到 Linux 文件命令。以下是一些最常見的:
- -b或–brief?– 獲取文件類型的簡短描述。
- file *?– 列出當前工作目錄中的所有文件類型。
- -i或–mime?– 顯示 MIME 文件類型。
- -s或–special-files?– 讀取特殊文件。
- -z或–uncompress –檢查并顯示壓縮文件中的信息。
- -c 或 –checking-printout –檢查魔法文件的解析版本。
- -m或–magic-file?– 利用用戶提供的替代魔法文件。
- -d?– 使用標準格式顯示內部調試信息。
- <regex range>?– 獲取特定范圍內的文件類型。
- -0或–print0?– 在文件名末尾打印一個空字符。
- –help?– 顯示文件命令的幫助信息。它還列出了可接受的選項及其用法。
在以下部分中,我們將討論如何使用這些選項中的每一個。
檢查文件類型
在 Linux 中,雖然用戶可以重命名他們的文件,但更新后的信息可能并不代表實際數據。要查找正確的文件類型,請輸入:
文件文件名
例如,您將test.txt重命名為text.zip。要顯示有效的文件類型,請輸入:
文件正文.zip
輸出將顯示名稱及其實際類型,一個 ASCII 文本文件:
要以簡要模式查看格式,請在終端上使用-b選項,后跟文件名。例如:
文件 -b 文本.zip
輸出將顯示?不帶名稱的文件類型:
列出多個文件的文件類型
file 命令可以列出主目錄中的每種文件類型。為此,輸入文件并添加通配符 (?*?):
文件 *
該程序將顯示所有文件和目錄:
此外,文件命令可以顯示特定目錄中的每種文件類型。這是一般語法:
文件 [目錄路徑]/*
查找 MIME 文件類型
-i選項用于查看MIME 文件類型。它由兩部分組成——類型和子類型。MIME 使用斜杠 (/) 將它們分開,中間沒有空格。
這是一般語法:
file -i 文件名
例如,要查看test2.txt文件的 MIME 類型,請輸入:
文件-i test2.txt
這是上面文件命令的輸出:
該程序沒有將文件格式聲明為 ASCII 文本,而是將文件定義為text/plain和charset=us-ascii。
讀取特殊文件類型
文件命令允許您通過添加-s選項來讀取特殊文件,例如系統信息。
重要的!請記住,只有 root 用戶才能使用 -s 選項運行文件命令。否則,您將收到一條無讀取權限錯誤消息。
此選項僅將文件分類為塊特殊文件、符號鏈接、目錄或不存在。
這是它的一般格式:
sudo file -s 文件名
例如,要讀取ploop19269文件,請輸入:
sudo 文件 -s /dev/ploop19269
輸出表明ploop19269是 DOS/MBR 引導扇區。
讀取壓縮文件
有兩種方法可以檢查壓縮文件,如ZIP或gzip檔案,-z和-Z選項。前者顯示詳細信息及其內容,而后者僅顯示文件類型。
這是-z選項的一般語法:
file -z 文件名
例如,要讀取test2.txt.gz文件的完整數據,請輸入:
文件-z test2.txt.gz
輸出指定test2.txt.gz是一個包含test2.txt 的gzip壓縮文件:
這是-Z選項的一般格式:
file -Z 文件名
例如,要僅查看test.gz的文件類型,請輸入:
文件-Z test.gz
此命令只會打印出test.gz中文件的類型——ASCII 文本。
測試文件的解析版本
添加-c選項允許您查看任何文件的解析版本。它顯示類型、操作碼和值等信息。通常,它與-m選項結合使用以在安裝前調試新的魔術文件。
這是它的一般語法:
file -c 文件名
例如,要打印test.txt文件的解析形式,請輸入:
文件-c test.txt
輸出應如下所示:
列出文件類型
file 命令使用 Regex 樣式范圍列出目錄中的所有文件類型。鍵入文件并將值放在方括號中,然后是*。
它的一般語法是:
文件 [范圍 1-范圍 2]*
例如,要檢查從a到z范圍內的文件,請輸入:
文件 [az]*
輸出應如下所示:
由于此程序區分大小寫,因此輸出將僅顯示以小寫字母 a 到 z 開頭的文件。要包括大寫字符,請添加另一個范圍。例如:
文件 [az]* [AZ]*
輸出如下所示:
結論
在 UNIX 系統中,文件名和擴展名可能與其實際類型不同。因此,Linux 提供了 file 命令來幫助用戶判斷文件的類型。
執行時,使用適當的選項并指定文件名。有許多可接受的變量可與文件命令一起使用,例如:
- -c?– 測試文件的解析形式。
- -i?– 查找 MIME 類型。
- *?– 列出多個文件。
- -z?– 讀取壓縮內容。
我們希望本文能幫助您了解如何使用 Linux 文件命令管理數據。如果您有任何問題或建議,請將其留在下面的評論部分。