如何在Linux中查詢檔案型別


在Linux作業系統中,通常一切都被視為檔案。在UNIX中,總共有七種標準檔案型別:

  • FIFO 特殊檔案

  • 塊特殊檔案

  • 字元特殊檔案

  • 套接字

  • 普通檔案

  • 目錄

  • 符號連結

檔案可以主要分為以下幾類:

  • 普通檔案

  • 目錄檔案

  • 特殊檔案

在作業系統中,確定特定檔案型別最簡單的方法是檢視該檔案的副檔名,例如 '.txt'、'.py'、'.go' 等。如果Linux中的特定檔案沒有任何副檔名,則我們將其稱為“檔案實用程式”。

在本教程中,我們將展示如何使用不同的Linux命令來確定Linux中不同檔案型別。

如果Linux中的特定檔案沒有任何型別,我們可以使用名為“file”的Linux檔案實用程式,它用於對特定檔案執行一些基本測試,然後列印檔案型別。

現在我們知道了如何列印檔案型別,讓我們來看幾個例子。

示例 1

在第一個示例中,我們將使用帶預設選項“-v”的“file”命令,該命令將驗證此檔案正在使用哪個版本的實用程式。

請考慮以下命令:

file -v

在終端上執行上述命令,它將產生以下輸出

file-6.11
magic file from /etc/magic:/usr/sample/misc

在上述輸出中,您可以看到第一行基本列印了檔案使用的檔案實用程式的版本,下一行則提供了檔案的詳細資訊。

現在我們對“file”命令有了一些瞭解,讓我們在不同的示例中使用它。

示例 2

在此示例中,我們將使用“file”命令並傳遞一個檔案作為引數,然後執行該命令。

file mybashfile.sh

執行後,它將在終端上產生以下輸出:

mybashfile.sh: ASCII text

注意:上述輸出特定於我的機器,在您的機器上可能會有所不同。

示例 3

如果您想逐行檢查檔案,則可以使用“file”命令中提供的“-f”選項。請考慮以下命令:

file -f sample.tar.gz

執行上述命令,您將看到以下輸出:

sample.tar.gz: bzip2 compressed data, block size = 900k

示例 4

我們知道,“file”命令預設會執行一些測試以確定特定檔案的副檔名型別,如果您想跳過這些步驟,則可以使用一些預設選項。然後命令將執行得更快,因為它將跳過所有不必要的測試,我們也可以提供一些示例測試來跳過。

請考慮以下命令。

file -e ascii -e reduce-e elf sample

在上述命令中,我們使用“-e”選項,然後傳遞我們想要跳過的不同測試的名稱,以便使命令執行得更快。

預設情況下,當我們想要讀取塊或字元特殊檔案時,我們還可以使用不同的選項。

請考慮以下命令:

file -s /dev/sda1

以上檔案是一個分割槽檔案,包含不同的記憶體塊和不同的分割槽,我們可以使用“file”命令中的“-s”命令選項來列印。

示例 5

讓我們考慮一個示例,我們知道我們有一個壓縮檔案,並且想知道該檔案中包含什麼型別的資料。我們可以使用“file”命令並提供預設選項“-z”來檢查。

“-z”選項用於指示檔案我們想要檢視特定壓縮檔案的內容。

請考慮以下命令:

file -z samplefile -z samplefile -z sample

在上述命令中,檔名“sample”是一個壓縮檔案,如果您在終端上執行上述命令,您將獲得有關它是什麼型別的檔案以及它包含什麼型別資料的詳細資訊。

如果您想列印有關特定檔案內容的資訊(而不是檔案的壓縮),則可以使用帶有“-Z”選項的“file”命令:

file -Z sample

如果您在終端上執行上述命令,您將只會獲得有關“sample”檔案中存在的資料的資訊。

示例 6

如有必要,您可以指示“file”命令僅輸出MIME型別字串,而不是我們通常執行“file”命令時獲得的更傳統或更基本的易於理解的輸出。

為了獲得MIME型別字串作為輸出,您需要執行以下命令:

file -i -s mybashfile.sh

一旦我們在終端上執行上述命令,我們將獲得以下輸出:

mybashfile.sh: text/plain; charset=us-ascii

示例 7

如果您想列印特定檔案型別的分隔符分隔的有效副檔名列表,請使用以下命令:

file --extension sample.tar.gz

一旦我們在終端上執行上述命令,我們將獲得以下輸出:

sample.tar.gz: ??

結論

在本教程中,我們解釋瞭如何使用“file”命令以及不同的選項來了解檔案型別。

更新於:2022年7月19日

3K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告