一分鐘學一個 Linux 命令

2023-06-10 06:00:44

前言

大家好,我是 god23bin。今天給大家帶來的是 Linux 命令系列,每天只需一分鐘,記住一個 Linux 命令不成問題。今天,我們要介紹的是一個常用且強大的命令:tar。

什麼是 tar 命令?

tartape archive 的縮寫,意思是磁帶歸檔,歸檔可以視為存檔。tar 命令網上很多都提到,它是一個壓縮命令,為什麼會這樣說呢?

實際上,它是用於建立和提取 tar 歸檔檔案的,最初的設計就是用於將多個檔案打包到磁帶上進行備份。隨著時間的推移,tar 命令已經擴充套件到處理檔案和目錄的歸檔和壓縮。

tar 命令之所以常被稱為壓縮命令,是因為它通常與壓縮演演算法結合使用,可以在建立歸檔時對檔案進行壓縮,以減小歸檔檔案的大小。這種結合使用壓縮演演算法的方式是出於效率和儲存空間的考慮,尤其在處理大量檔案或傳輸檔案時特別有用。壓縮演演算法通常是通過選項來指定的。在常見的 tar 命令中,使用 -z 選項表示使用 gzip 壓縮演演算法,-j 選項表示使用 bzip2 壓縮演演算法,而 -Z 選項表示使用 compress 壓縮演演算法。這些壓縮演演算法可以有效地減小檔案的大小,並在需要時進行解壓縮還原。所以,現在的 tar 命令在許多場景中不僅用於建立和提取歸檔檔案,還常用於壓縮和解壓縮檔案。

如何使用 tar 命令?

tar 命令的基本語法如下:

tar [選項引數] 歸檔檔名 檔案/目錄名

其中,選項引數 是可選的,用於指定 tar 命令的不同操作。歸檔檔名 是要建立或提取的歸檔檔案的名稱。檔案/目錄名 是要打包或提取的檔案或目錄的名稱。

建立歸檔檔案

要建立歸檔檔案,可以使用 -c 選項並指定要建立的歸檔檔案的名稱,然後提供要打包的檔案或目錄的名稱。

c 代表 create,意味著建立一個新的歸檔檔案來儲存指定的檔案和目錄。使用 -c 引數時,通常需要結合 -f 引數指定存檔檔案的名稱。f 代表 file,表示後面緊跟著的引數是存檔檔案的名稱。例如,-f archive.tar 指定了歸檔檔案為 archive.tar

tar -c -f 歸檔檔案.tar 檔案/目錄

舉個例子,現在我們在 /opt/games/gta6 目錄下有一個 crack 目錄,我們想將 crack 目錄歸檔,儲存一下,那麼就可以要建立名一個為 crack.tar 的歸檔檔案並打包 crack 目錄,可以執行以下命令:

tar -c -f crack.tar crack

提取(解壓)歸檔檔案

要從歸檔檔案中提取檔案或目錄,可以使用 -x 選項並指定要提取的歸檔檔案的名稱。

x 代表 extract,表示從存檔檔案中提取歸檔的檔案和目錄。使用 -x 引數時,通常需要結合 -f 引數指定要提取的存檔檔案的名稱。

tar -x -f 歸檔檔案.tar

現在,我們把上一步建立的歸檔檔案移動到 model 目錄下再進行提取,提取所有檔案和目錄,可以執行以下命令:

tar -x -f crack.tar

壓縮歸檔檔案

tar 命令還支援將歸檔檔案與壓縮演演算法結合使用以減小檔案大小。常見的壓縮演演算法包括 gzip (-z)、bzip2 (-j) 和 xz (-J)。

tar -c -z -f 歸檔檔案.tar.gz 檔案/目錄
tar -c -j -f 歸檔檔案.tar.bz2 檔案/目錄
tar -c -J -f 歸檔檔案.tar.xz 檔案/目錄

現在,我們想要把 config4gta6 歸檔並且壓縮,分別使用這 3 種演演算法壓縮,那麼可以分別建立名為 config4gta6.tar.gz 的 gzip 壓縮歸檔檔案、config4gta6.tar.bz2 的 bzip2 壓縮歸檔檔案和 config4gta6.tar.xz 的 xz 壓縮歸檔檔案,並打包目錄 config4gta6,現在就可以依次執行以下命令:

tar -c -z -f config4gta6.tar.gz config4gta6
tar -c -j -f config4gta6.tar.bz2 config4gta6
tar -c -J -f config4gta6.tar.xz config4gta6

解壓歸檔檔案

現在是有了 3 個壓縮的歸檔檔案了,那麼如何解壓呢?聰明的你肯定知道了,就是使用 -x 選項引數。現在我們先將這 3 個壓縮歸檔檔案移動到當前的 crack 目錄下,在 crack 目錄中進行解壓。

# 移動 3 個壓縮檔案到 crack 目錄
mv config4gta6.tar.gz config4gta6.tar.bz2 config4gta6.tar.xz crack

接著我們可以根據壓縮的演演算法選擇用哪個引數來解壓,就是通過 -x-z-j-J 配合使用。

直接解壓 gzip 壓縮歸檔檔案到當前目錄:

tar -x -z -f config4gta6.tar.gz

解壓 bzip2 壓縮歸檔檔案到指定目錄,設定選項引數 -C(大寫字母 C,是 Change directory 的縮寫,表示改變目錄)來指定目錄:

tar -x -j -f config4gta6.tar.bz2 -C /opt/games/gta6/model/crack/bz2dir/

解壓 xz 壓縮歸檔檔案到指定目錄:

tar -x -J -f config4gta6.tar.xz -C xzdir/

顯示歸檔檔案內容

要檢視歸檔檔案中的內容,可以使用 -t 選項並指定歸檔檔案的名稱。-t 列出存檔檔案中的內容(list)

tar -t -f 歸檔檔案.tar

我們現在就看看歸檔的內容,以最開始的 crack.tar 為例:

tar -t -f crack.tar

對於有使用壓縮演演算法壓縮的歸檔檔案,也是一樣的用法。

tar -t -f config4gta6.tar.gz

其他常用選項

除了上述基本用法,tar 命令還提供了許多其他選項,用於執行各種操作和控制歸檔檔案的行為。以下是一些常用的選項:

  • -v:(verbose,詳細的)顯示詳細輸出,列出打包或提取的每個檔案的名稱。
  • -C:(Change directory)切換到指定目錄後再執行操作,在 tar 命令中,一般就是解壓的時候,配合這個 -C,可以讓我們將檔案解壓到其他指定的目錄中。
  • -u:(update)僅將較新的檔案新增到存檔檔案中。

選項引數的先後順序

tar 命令中,選項引數的先後順序通常沒有特定的規定。你可以根據需要靈活地組合和排列選項引數。

還有一些通用的慣例需要知道,這樣可以幫助我們更好地使用選項引數:

  1. 通常情況下,選項引數以連字元 - 開頭,例如 -c, -x, -v 等。
  2. 單個字母的選項引數可以組合在一起,形成一個選項字串。例如,-cvf 表示同時啟用 -c, -v, -f 這三個選項。
  3. 選項引數的順序可能會影響命令的行為。例如,使用 -f 選項指定檔名時,應該確保 -f 出現在檔名之前,以便正確識別檔名。
  4. 一些選項引數可能需要後面緊跟著引數值。例如,-f 選項需要指定後面的檔名,例如 -f archive.tar.gz

總結

tar 最初是 tape archive(磁帶歸檔)的簡稱,並且在早期主要用於磁帶備份,但現在它已經成為一種常見的檔案處理工具,可以建立、提取和管理歸檔檔案,並結合壓縮演演算法實現檔案的壓縮和解壓縮功能。

現在,相信聰明的你已經學會了 tar 命令!

希望本文能夠幫助大家更好地理解和應用 tar 命令。如果你對其他 Linux 命令也感興趣,敬請期待我後續的文章。謝謝大家的閱讀!

最後的最後

希望各位螢幕前的靚仔靚女們給個三連!你輕輕地點了個贊,那將在我的心裡世界增添一顆明亮而耀眼的星!

咱們下期再見!