內容總結自《鳥哥的Linux私房菜》http://cn.linux.vbird.org/linux_basic/0240tarcompress.php
一、打包/壓縮文件常見擴展名
| *.gz | gzip 程序壓縮的文件 |
| *.bz2 | bzip2 程序壓縮的文件 |
| *.tar | tar 程序打包的數據,並沒有壓縮過 |
| *.tar.gz | tar 程序打包的文件,其中並且經過 gzip 的壓縮 |
| *.tar.bz2 | tar 程序打包的文件,其中並且經過 bzip2 的壓縮 |
二、常用命令
1、常見場景
| 壓縮 | tar -zcv -f filename.tar.gz 要被壓縮的文件或目錄名稱 |
| 查詢 | tar -ztv -f filename.tar.gz |
| 解壓縮 | tar -zxv -f filename.tar.gz -C 欲解壓縮到的目錄 |
2、僅解開單一文件的方法
tar -zxv -f filename.tar.gz 待解開文檔名
具體文檔名的查看可以用查詢命令:
tar -ztv -f filename.tar.gz #或者通過grep查找文件名關鍵字 tar -ztv -f filename.tar.gz | grep '文件名關鍵字'
3、打包時排除特定文件
假設我們想要打包 /etc/ /root 這幾個重要的目錄,但卻不想要打包 /root/etc* 開頭的文件,且不打包自身。
tar -zcv -f /root/system.tar.gz --exclude=/root/etc* --exclude=/root/system.tar.gz /etc /root
三、參數說明
| -c | 創建打包文件,可搭配 -v 來察看過程中被打包的檔名(filename) |
| -t | 察看打包文件的內容含有哪些檔名 |
| -x | 解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開。特別留意的是,-c, -t, -x 不可同時出現在一串命令列中 |
| -j | 透過 bzip2 的支持進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2 |
| -z | 透過 gzip 的支持進行壓縮/解壓縮:此時檔名最好為 *.tar.gz |
| -v | 在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來 |
| -f filename | -f 后面要立刻接要被處理的檔名 |
| -C 目錄 | 這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項 |
| --exclude=FILE | 在壓縮的過程中,不要將 FILE 打包 |
| -p | 保留備份數據的原本權限與屬性,常用於備份(-c)重要的配置檔 |
| -P | 保留絕對路徑,亦即允許備份數據中含有根目錄存在之意 |
