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