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命令經過管道傳入的檔案文件做爲須要解壓的數據來源。
相關文章
相關標籤/搜索