首頁 > 軟體

Linux基礎教學:tar 命令使用介紹

2020-06-16 17:49:24

Linux tar 命令是歸檔或分發檔案時的強大武器。GNU tar 歸檔包可以包含多個檔案和目錄,還能保留其檔案許可權,它還支援多種壓縮格式。Tar 表示 "Tape Archiver",這種格式是 POSIX 標準。

 

Tar 檔案格式

tar 壓縮等級簡介:

  • 無壓縮 沒有壓縮的檔案用 .tar 結尾。
  • Gzip 壓縮 Gzip 格式是 tar 使用最廣泛的壓縮格式,它能快速壓縮和提取檔案。用 gzip 壓縮的檔案通常用 .tar.gz 或 .tgz 結尾。這裡有一些如何建立解壓 tar.gz 檔案的例子。
  • Bzip2 壓縮 和 Gzip 格式相比 Bzip2 提供了更好的壓縮比。建立壓縮檔案也比較慢,通常採用 .tar.bz2 結尾。
  • Lzip(LAMA)壓縮 Lizp 壓縮結合了 Gzip 快速的優勢,以及和 Bzip2 類似(甚至更好) 的壓縮率。儘管有這些好處,這個格式並沒有得到廣泛使用。
  • Lzop 壓縮 這個壓縮選項也許是 tar 最快的壓縮格式,它的壓縮率和 gzip 類似,但也沒有廣泛使用。

常見的格式是 tar.gz 和 tar.bz2。如果你想快速壓縮,那麼就是用 gzip。如果歸檔檔案大小比較重要,就是用 tar.bz2。

 

tar 命令用來幹什麼?

下面是一些使用 tar 命令的常見情形。

  • 備份伺服器或桌面系統
  • 文件歸檔
  • 軟體分發

 

安裝 tar

大部分 Linux 系統預設都安裝了 tar。如果沒有,這裡有安裝 tar 的命令。

 

CentOS

在 CentOS 中,以 root 使用者在 shell 中執行下面的命令安裝 tar。

  1. yum install tar

 

Ubuntu

下面的命令會在 Ubuntu 上安裝 tar。“sudo” 命令確保 apt 命令是以 root 許可權執行的。

  1. sudoapt-get install tar

 

Debian

下面的 apt 命令在 Debian 上安裝 tar。

  1. apt-get install tar

 

Windows

tar 命令在 Windows 也可以使用,你可以從 Gunwin 專案http://gnuwin32.sourceforge.net/packages/gtar.htm中下載它。

 

建立 tar.gz 檔案

下面是在 shell 中執行 tar 命令 的一些例子。下面我會解釋這些命令列選項。

  1. tar pczf myarchive.tar.gz /home/till/mydocuments

這個命令會建立歸檔檔案 myarchive.tar.gz,其中包括了路徑 /home/till/mydocuments 中的檔案和目錄。命令列選項解釋

  • [p] 這個選項表示 “preserve”,它指示 tar 在歸檔檔案中保留檔案屬主和許可權資訊。
  • [c] 表示建立。要建立檔案時不能缺少這個選項。
  • [z] z 選項啟用 gzip 壓縮。
  • [f] file 選項告訴 tar 建立一個歸檔檔案。如果沒有這個選項 tar 會把輸出傳送到標準輸出( LCTT 譯註:如果沒有指定,標準輸出預設是螢幕,顯然你不會想在螢幕上顯示一堆亂碼,通常你可以用管道符號送到其它程式去)。

 

Tar 命令範例

範例 1: 備份 /etc 目錄

建立 /etc 設定目錄的一個備份。備份儲存在 root 目錄。

  1. tar pczvf /root/etc.tar.gz /etc

用 tar 備份 /etc 目錄

要以 root 使用者執行命令確保 /etc 中的所有檔案都會被包含在備份中。這次,我在命令中新增了 [v] 選項。這個選項表示 verbose,它告訴 tar 顯示所有被包含到歸檔檔案中的檔名。

範例 2: 備份你的 /home 目錄

建立你的 home 目錄的備份。備份會被儲存到 /backup 目錄。

  1. tar czf /backup/myuser.tar.gz /home/myuser

用你的使用者名稱替換 myuser。這個命令中,我省略了 [p] 選項,也就不會儲存許可權。

範例 3: 基於檔案的 MySQL 資料庫備份

在大部分 Linux 發行版中,MySQL 資料庫儲存在 /var/lib/mysql。你可以使用下面的命令來檢視:

  1. ls/var/lib/mysql

使用 tar 基於檔案備份 MySQL

用 tar 備份 MySQL 資料檔案時為了保持資料一致性,首先停用資料庫伺服器。備份會被寫到 /backup 目錄。

1) 建立 backup 目錄

  1. mkdir/backup
  2. chmod600/backup

2) 停止 MySQL,用 tar 進行備份並重新啟動資料庫。

  1. service mysql stop
  2. tar pczf /backup/mysql.tar.gz /var/lib/mysql
  3. service mysql start
  4. ls-lah /backup

基於檔案的 MySQL 備份

 

提取 tar.gz 檔案

提取 tar.gz 檔案的命令是:

  1. tar xzf myarchive.tar.gz

 

tar 命令選項解釋

  • [x] x 表示提取,提取 tar 檔案時這個命令不可缺少。
  • [z] z 選項告訴 tar 要解壓的歸檔檔案是 gzip 格式。
  • [f] 該選項告訴 tar 從一個檔案中讀取歸檔內容,本例中是 myarchive.tar.gz。

上面的 tar 命令會安靜地提取 tar.gz 檔案,除非有錯誤資訊。如果你想要看提取了哪些檔案,那麼新增 “v” 選項。

  1. tar xzvf myarchive.tar.gz

[v] 選項表示 verbose,它會向你顯示解壓的檔名。

提取 tar.gz 檔案


via: https://www.howtoforge.com/tutorial/linux-tar-command/

作者:howtoforge 譯者:ictlyh 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-12/125800.htm


IT145.com E-mail:sddin#qq.com