Linux命令之tar:文件打包(備份)、壓縮、解壓

語法

tar  (選項)  (參數)bash

選項

  • -A或–catenate:新增文件到以存在的備份文件;
  • -B:設置區塊大小;
  • -c或–create:創建新的備份文件;
  • -C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,能夠使用這個選項。
  • -d:記錄文件的差異;
  • -x或–extract或–get:從備份文件中還原文件;
  • -t或–list:列出備份文件的內容;
  • -z或–gzip或–ungzip:經過gzip指令處理備份文件;
  • -Z或–compress或–uncompress:經過compress指令處理備份文件;
  • -f<備份文件>或–file=<備份文件>:指定備份文件;
  • -v或–verbose:顯示指令執行過程;
  • -r:添加文件到已經壓縮的文件;
  • -u:添加改變了和現有的文件到已經存在的壓縮文件;
  • -j:支持bzip2解壓文件;
  • -v:顯示操做過程;
  • -l:文件系統邊界設置;
  • -k:保留原有文件不覆蓋;
  • -m:保留文件不被覆蓋;
  • -w:確認壓縮文件的正確性;
  • -p或–same-permissions:用原來的文件權限還原文件;
  • -P或–absolute-names:文件名使用絕對名稱,不移除文件名稱前的「/」號;
  • -N <日期格式> 或 –newer=<日期時間>:只將較指定日期更新的文件保存到備份文件裏;
  • –exclude=<範本樣式>:排除符合範本樣式的文件。

實例

將文件所有打包成tar包

[root@sxooky test]# tar cf script.tar catpv.sh diffbase.sh   #僅打包,不壓縮!
[root@sxooky test]# tar zcf script2.tar.gz catpv.sh diffbase.sh   #打包後,以 gzip 壓縮
[root@sxooky test]# tar jcf script3.tar.bz2 catpv.sh diffbase.sh   #打包後,以 bzip2 壓縮
[root@sxooky test]# ll script*
-rw-r--r-- 1 root root  1398 Mar 31 15:23 script2.tar.gz
-rw-r--r-- 1 root root  1515 Mar 31 15:23 script3.tar.bz2
-rw-r--r-- 1 root root 10240 Mar 31 15:23 script.tar

在選項f以後的文件檔名是本身取的,咱們習慣上都用 .tar 來做爲辨識。spa

若是加z選項,則以.tar.gz或.tgz來表明gzip壓縮過的tar包;code

若是加j選項,則以.tar.bz2來做爲tar包名。ip

查看包中文件

[root@sxooky test]# tar tf script3.tar.bz2 
catpv.sh
diffbase.sh

解壓文件

[root@sxooky test]# mkdir test_tar test2_tar
[root@sxooky test]# tar xf script2.tar.gz -C test_tar/  #解壓所有文件
[root@sxooky test]# tar xf script2.tar.gz -C test2_tar/ catpv.sh  #解壓指定文件
[root@sxooky test]# ll test*
test2_tar:
total 4
-rw-r--r-- 1 root root 874 Mar 24 17:35 catpv.sh
 
test_tar:
total 8
-rw-r--r-- 1 root root  874 Mar 24 17:35 catpv.sh
-rw-r--r-- 1 root root 1699 Mar 15 13:50 diffbase.sh
[root@sxooky test]# tar tf script3.tar.bz2 
catpv.sh
diffbase.sh

在文件夾當中,比某個日期新的文件才備份

tar -N "2012/11/13" -zcvf log17.tar.gz test

備份文件夾內容是排除部分文件

tar --exclude scf/service -zcvf scf.tar.gz scf/*

其實最簡單的使用 tar 就只要記憶底下的方式便可

  • 壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
  • 查 詢:tar -jtv -f filename.tar.bz2
  • 解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
相關文章
相關標籤/搜索