歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux系統管理與維護之-tar命令

1.功能說明
tar是Linux下經常使用的歸檔工具,是對文件或者目錄進行打包歸檔,歸成一個文件,但是並不進行壓縮。其格式如下:
tar [主選項+輔助選項] 文件或者目錄
tar命令的選項很多,這裡列出一些經常用到的主選項,如表4.31所示。
表4.31 tar命令的主選項及其說明

主選項 含 義
-c 創建新的文件
-r 把要歸檔的文件追加到檔案文件的末尾
-t 列出檔案文件中已經歸檔的文件列表
-x 從打包的檔案文件中還原出文件
-u 更新檔案文件,用新的文件替換檔案中的原始文件

輔助選項的詳細信息如表4.32所示。
表4.32 tar命令的輔助選項及其說明

輔助選項 含 義
-z 調用gzip命令在文件打包的過程中進行壓縮/解壓文件
-w 在還原文件時,把所有文件的修改時間設定為現在時間
-j 調用bzip2命令在文件打包的過程中進行壓縮/解壓文件
-Z 調用compress命令過濾檔案
-f “-f”選項後面緊跟檔案文件的存儲設備,默認是磁盤,需要指定檔案文件名;如果是磁帶,只需指定磁帶設備名即可。注意,在“-f”選項之後不能再跟任何其他選項,也就是說“-f”必須是tar命令的最後一個選項
-v 指定在創建歸檔文件過程中,顯示各個歸檔文件的名稱
-p 在文件歸檔的過程中,保持文件的屬性不發生變化
-N “yyyy/mm/dd” 在指定日期之後的文件才會被打包到檔案文件中
--exclude file 在打包過程中,不將指定file文件打包

2.舉例
(1)將/etc目錄下的所有文件打包,並顯示打包的詳細文件,設置打包文件名為etc.tar,同時保存文件到/opt目錄下。
[root@dbbackup oracle]#tar -cvf /opt/etc.tar /etc
這裡的檔案名“etc.tar”名字是我們自己隨便取的,Linux上利用tar命令打包出來的檔案文件我們一般用.tar作為標識。
(2)將/etc目錄下的所有文件打包並壓縮,然後顯示打包的詳細文件,設置打包文件名為etc.tar.gz,同時保存文件到/opt目錄下。
[root@dbbackup oracle]# tar -zcvf /opt/etc.tar.gz /etc
[root@dbbackup oracle]#tar -jcvf /opt/etc.tar.bz2 /etc
“zcvf”選項表示在打包完成後調用gzip命令對檔案文件進行壓縮,這裡的檔案名“etc.tar.gz”也是我們隨便取的,“.tar”表示是用tar命令打包的,“.gz”表示調用了gzip命令進行了壓縮。同理,“jcvf”選項表示在打包完成後調用bzip2命令對檔案文件進行壓縮,檔案命名標識中“.bz2”表示調用了bzip2命令進行了壓縮處理。
這裡對檔案文件的取名沒有硬性的規定,上面采用的命名規則,可以很方便地讓我們知道文件的類型以及對應的解壓方式,因為壓縮方式不同,解壓方式也是不同的。同時,這種規則也是大家都默許了的一種潛規則。如果你不喜歡這種規則,完全可以按照自己喜歡的方式命名檔案文件。
(3)查閱上面/opt/etc.tar.gz壓縮包的內容。
[root@dbbackup oracle]#tar -ztvf /opt/etc.tar.gz
[root@dbbackup oracle]#tar -jtvf /opt/etc.tar.gz
 

注意 “etc.tar.gz”可能包含很多個文件,無法一個屏幕顯示完畢,這時可以使用more命令,比如,tar –zxvf /opt/etc.tar.gz|more。

(4)將/opt/etc.tar.gz解壓到/usr/local/src下。
[root@dbbackup oracle]#cd /usr/local/src
[root@dbbackup src]#tar -zxvf /opt/etc.tar.gz
一般情況下,可以把/opt/etc.tar.gz在任何地方解開,這裡我們首先切換到了/usr/local/src目錄下,然後解開/opt/etc.tar.gz,因此/usr/local/src/etc目錄就是我們解開的目錄。
(5)將/etc目錄下的所有文件打包備份到/opt目錄下,並保存每個文件的權限。
[root@dbbackup oracle]#tar -zcvpf /opt/etc.tar.gz /etc
(6)在/opt目錄下,僅解開/opt/etc.tar.gz壓縮文件中的/etc/inittab文件。
[root@dbbackup oracle]# cd /opt
[root@dbbackup opt]#tar –zxvf /opt/etc.tar.gz etc/inittab
我們首先可以通過“tar –ztvf”查看“etc.tar.gz”文件中包含的文件,然後找到需要解開的文件,通過上面的方式解壓。後面指定的需要解壓出來的文件一定要是通過“tar –ztvf”顯示出來的文件完整路徑。這樣就在/opt目錄下解壓出了一個etc目錄,而etc目錄下的inittab就是我們需要的文件。
(7)打包備份/var/log目錄中2008/7/21以後的文件。
[root@dbbackup oracle]#tar –N “2008/7/21” –zcvf log.tar.gz /var/log
[root@dbbackup oracle]#pwd
/opt/oracle
[root@dbbackup oracle]#ls
log.tar.gz
(8)打包備份/home目錄和/etc目錄,但是不備份/home下的ixdba目錄。
[root@dbbackup oracle]#tar –exclude /home/ixdba -zcvf myfile.tar.gz /home/* /etc
(9)將/etc目錄打包壓縮後直接解壓到/opt目錄下,而不生成打包的檔案文件。
[root@dbbackup oracle]#cd /opt
[root@dbbackup opt]#tar –zcvf - /etc | tar –zxvf –
在上面的命令中,緊跟在“f”後面的“-”是將創建的檔案文件輸出到標准輸出上,“|”在Linux下表示管道符,命令最後的“-”表示將tar命令通過管道傳入的檔案文件作為需要解壓的數據來源。
 

Copyright © Linux教程網 All Rights Reserved