歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統管理與維護之-tar命令

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

日期:2017/2/28 14:46:14   编辑:Linux教程
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命令通過管道傳入的檔案文件作為需要解壓的數據來源。

推薦閱讀:Linux系統文件查找命令find的基本使用及其高級用法 http://www.linuxidc.com/Linux/2013-05/84991.htm

Copyright © Linux教程網 All Rights Reserved