萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux系統下tar命令的使用技巧總結

Linux系統下tar命令的使用技巧總結

   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。

  復制代碼

  代碼如下:

  yum install tar

  Ubuntu

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

  代碼如下:

  sudo apt-get install tar

  Debian

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

  代碼如下:

  apt-get install tar

  Windows

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

  創建 tar.gz 文件

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

  代碼如下:

  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 目錄。

  代碼如下:

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

2015128110935163.png (988×452)

  要以 root 用戶運行命令確保 /etc 中的所有文件都會被包含在備份中。這次,我在命令中添加了 [v] 選項。這個選項表示 verbose,它告訴 tar 顯示所有被包含到歸檔文件中的文件名。

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

  創建你的 home 目錄的備份。備份會被保存到 /backup 目錄。

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

  用你的用戶名替換 myuser。這個命令中,我省略了 [p] 選項,也就不會保存權限。

  示例 3: 基於文件的 MySQL 數據庫備份

  在大部分 Linux 發行版中,MySQL 數據庫保存在 /var/lib/mysql。你可以使用下面的命令來查看:

  代碼如下:

  ls /var/lib/mysql

2015128110955732.png (675×425)

  用 tar 備份 MySQL 數據文件時為了保持數據一致性,首先停用數據庫服務器。備份會被寫到 /backup 目錄。

  1) 創建 backup 目錄

  代碼如下:

  mkdir /backup

  chmod 600 /backup

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

  代碼如下:

  service mysql stop

  tar pczf /backup/mysql.tar.gz /var/lib/mysql

  service mysql start

  ls -lah /backup

2015128111013606.png (675×425)

  提取 tar.gz 文件

  提取 tar.gz 文件的命令是:

  代碼如下:

  tar xzf myarchive.tar.gz

  tar 命令選項解釋

  [x] x 表示提取,提取 tar 文件時這個命令不可缺少。

  [z] z 選項告訴 tar 要解壓的歸檔文件是 gzip 格式。

  [f] 該選項告訴 tar 從一個文件中讀取歸檔內容,本例中是 myarchive.tar.gz。

  上面的 tar 命令會安靜地提取 tar.gz 文件,除非有錯誤信息。如果你想要看提取了哪些文件,那麼添加 “v” 選項。

  復制代碼

  代碼如下:

  tar xzvf myarchive.tar.gz

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

2015128111039230.png (731×425)
copyright © 萬盛學電腦網 all rights reserved