tar常用參數&配合split進行文件分割

tar常用參數&配合split進行文件分割

-c : 建立一個壓縮文件的參數指令(create 的意思)
-C : --directory DIR 轉到指定的目錄
-f : --file 指定存檔或設備(指定檔名,注意:在 f 之後要立即接檔名、不要再加參數,否則非法)
     Use archive file or device F (default “-”, meaning stdin/stdout). 
     Note that “/dev/stdout” is not equivalent to “-”.
     Using “/dev/stdout” explicitly can lead to corrupted archive, especially when coupled with “-v”.
-p : --same-permissions | --preserve-permissions 展開所有保護信息(使用原文件的原來屬性,屬性不會依據使用者而變)
-t : --list 列出存檔中文件的目錄(查看文件列表)
-v : 壓縮的過程中顯示文件!這個常用,但不建議用在背景執行過程
-x : --extract | --get 從存檔展開文件(解開文檔中的一個指定壓縮文件)
-y | --bzip2 | --bunzip2 用 bzip2 對存檔壓縮或解壓
-z : --gzip | --ungzip 用gzip對存檔壓縮或解壓
-Z : --compressv | --uncompress 用compress對存檔壓縮或解壓
注意:對於tar命令而言,參數帶和不帶"-",效果一樣。


#查看tar中的文件列表
tar -tvf a.tar.gz

#只想解壓壓縮包中的1個指定文件:
tar -xvpf a.tar.gz  u01/files/a.txt

#只想解壓壓縮包中的1個指定文件到指定的目錄下
tar -xvpf /mnt/soft/a.tar.gz var/lib/test.jar  -C /home/temp/

#創建一個壓縮文件(打包dir目錄爲一個壓縮文件
tar -zcvf abc.tar.gz ./abc
tar -zcvf abc.tgz ./abc

如果不壓縮只是打包:
tar -cvf abc.tar ./abc

#解壓
tar -zxvf abc.tar.gz
tar -xvf dir.tar
#解壓到指定目錄
tar -zxvf abc.tar.gz -C ./aaa/

如果遇到目錄或文件比較大時,可以結合split文件分割拆分多文件處理:
tar是文件打包工具,split是文件分割工具。如果打包後的單個文件可能超出文件系統支持的單個文件大小限制、或文件太大容易導致拷貝失敗時,可以考慮分割成適合大小的文件包。
利用tar和split進行壓縮、分割,再通過cat合併分割的文件解壓還原,以及在管道”|”配合下的打包分割文件過程。
例如:我的.skype文件已經有35M之多了,現在需要壓縮備份起來,直接用tar打包:

#壓縮時指定單個文件的大小進行自動拆分爲多文件:-b 指定分割大小,單位k,m,g
tar czvf - abc/ |split -b 100m - ./abc.tar.gz_

#也可以分爲2步:先打包,再分割
tar czvf abc.tar.gz abc/
split -b 100m abc.tar.gz abc.tar.gz_ --verbose

會生成多個文件:
abc.tar.gz_aa
abc.tar.gz_ab
abc.tar.gz_ac
...

#分割文件合併&解壓
cat abc.tar.gz_* |tar zxvf -

#也可以分兩步:先把壓縮包合併成一個文件,然後再解壓:
cat abc.tar.gz_* > abc.tar.gz (也可以使用管道來合併: cat abc.tar.gz_* |tar -zxvf )
tar zxvf abc.tar.gz
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章