通過SSH訪問服務器,難免會要用到壓縮、解壓縮、打包、解包等,這時候tar命令就是必不可少的一個功能強大的工具。linux中最流行的tar是麻雀雖小,五臟俱全,功能強大。
tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對于備份文件或將幾個文件組合成為一個文件以便于網絡傳輸是非常有用的。
首先要弄清兩個概念:歸檔和壓縮。
歸檔的含義 : 將許多零散的文件整理為一個文件 ,文件的大小基本不變。
壓縮的含義 : 按某種算法減小文件所占用空間的大小。
好了,進入今天的分享吧
一. 常見參數
# 1、打包/解包
-c 創建參數:當需要創建文件時必須加這個參數。
-x 解包參數:當需要解包文件時必須加這個參數,這個參數不能和-c同時出現。
# 2、壓縮/解壓
-z 文件格式參數:在壓縮/解壓文件時,這個參數對應tar.gz為后綴的文件,即需要解壓/壓縮為tar.gz格式的文件時要加這個參數。
-j 文件格式參數:在壓縮/解壓文件時,這個參數對應tar.bz2為后綴的文件,即需要解壓/壓縮為tar.bz2格式的文件時要加這個參數。
-J 文件格式參數:在壓縮/解壓文件時,這個參數對應tar.xz為后綴的文件,即需要解壓/壓縮為tar.xz格式的文件時要加這個參數。
# 其他一些常用參數
-v 顯示(打印在控制臺)出正在處理的文件名(類似于進度條)
-f 文件名參數,后面直接跟要解壓/壓縮成的文件名
-r 添加文件到已經壓縮的文件
-u 添加改變了和現有的文件到已經存在的壓縮文件
二. 幾個實例
為例子創建若干個空白文件
[python@localhost ~/tar_test]$ touch file{1..10}.pdf
[python@localhost ~/tar_test]$ touch file{1..10}.png
1、創建歸檔文件
• -c:表示創建新包,-v:顯示過程, -f:指定包的文件名
[python@localhost ~/tar_test]$ tar -cf all.tar *.pdf
• -z:指增加gz壓縮
[python@localhost ~/tar_test]$ tar -czf all.tar.gz *.pdf
2、解包歸檔文件
• -x:表示解壓,-v:顯示過程 ,-f:定包的文件名
• -C:指定解壓后的文件路徑。默認是當前路徑
[python@localhost ~/tar_test]$ tar -xvf all.tar -C ~/tar_test/aa
3、歸檔文件的增刪改查
• 查看打包內的內容
[python@localhost ~/tar_test]$ tar -tf all.tar
• 向已經創建的包內添加文件
[python@localhost ~/tar_test]$ tar -rf all.tar file9.png
• 向一個包all.tar內添加另一個包all_B.tar的內容
[python@localhost ~/tar_test]$ tar -Af all.tar all_B.tar
• 刪除包內的文件
[python@localhost ~/tar_test]$ tar -f all.tar --delete file10.pdf file1.pdf
• 修改包all.tar內某文件file10.pdf,并更新包
[python@localhost ~/tar_test]$ echo "hello world" >> file1.pdf
[python@localhost ~/tar_test]$ tar -uf all.tar file1.pdf
• 釋放包內特定文件file10.pdf
[python@localhost ~/tar_test]$ tar -xvf all.tar file10.pdf
注意:這里只舉例說明tar,其實增加-z,-j, -J參數也是適用的。
4、關于壓縮包
4.1 .tar.gz 或.tgz
• 調用gzip實現壓縮
[python@localhost ~/tar_test]$ tar -zcvf pdf.tar.gz *.pdf
• 查看壓縮包的內容
[python@localhost ~/tar_test]$ tar -tvf pdf.tar.gz
• 解壓到指定文件
[python@localhost ~/tar_test]$ tar -zxvf pdf.tar.gz -C aa
4.2 .tar.bz2 或.tbz2
• 調用bzip2實現壓縮
[python@localhost ~/tar_test]$ tar -jcvf pdf.tar.bz2 aa/*.pdf
• 解壓到指定文件
[python@localhost ~/tar_test]$ tar -jxvf pdf.tar.bz2 -C bb
4.3 .tar.xz
• 調用xz實現壓縮
[python@localhost ~/tar_test]$ tar -Jcvf pdf.tar.xz aa/*.pdf
• 解壓到指定文件
[python@localhost ~/tar_test]$ tar -jxvf pdf.tar.xz -C cc
今日份的分享結束啦
希望你喜歡tar命令的這幾個不同的示例
歡迎評論并分享你的心得
下一期我們再會