tar壓縮
通過SSH訪問服務器,難免會要用到壓縮,解壓縮,打包,解包等,這時候tar命令就是是必不可少的一個功能強大的工具
tar命令可以為linux的文件和目錄創建檔案。利用tar,可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將幾個文件組合成為一個文件以便於網絡傳輸是非常有用的。
常用命令
.tar.gz 和 .tar 不一樣 .tar是打包 .tar.gz才是打包壓縮
壓縮文件 或者文件夾 並在當前目錄下生成壓縮包
tar -zcvf rumenz.tar.gz rumenz.txt
解壓到當前目錄
tar -xzvf rumenz.tar.gz
解壓到 /tmp目錄
tar -xzvf rumenz.tar.gz -C /tmp
打包和壓縮
- 打包是指將一大堆文件或目錄變成一個總的文件;
- 壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。
Linux中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),然后再用壓縮程序進行壓縮(gzip bzip2命令)
linux下最常用的打包程序就是tar了,使用tar程序打出來的包我們常稱為tar包,tar包文件的命令通常都是以.tar結尾的。生成tar包后,就可以用其它的程序來進行壓縮。
命令格式
> tar [必要參數] [選擇參數] 文件
命令功能
用來壓縮和解壓文件。tar本身不具有壓縮功能。他是調用壓縮功能實現的。
命令參數
必要參數
- -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=<范本樣式>:排除符合范本樣式的文件。
選擇參數
- -b 設置區塊數目
- -C 切換到指定目錄
- -f 指定壓縮文件
- --help 顯示幫助信息
- --version 顯示版本信息
打包一個文件,不壓縮
> tar -cvf rumenz.tar rumenz.txt
打包並壓縮一個文件(使用gzip壓縮)
> tar -zcvf rumenz.tar.gz rumenz.txt
打包並壓縮一個文件(使用bzip2壓縮)
> tar -jcvf rumenz.tar.bz2 rumenz.txt
在選項f之后的文件檔名是自己取的,我們習慣上都用 .tar 來作為辨識。 如果加z選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;如果加j選項,則以.tar.bz2來作為tar包名。
列出打包壓縮文件里面的內容
> tar -ztvf rumenz.tar.gz
由於我們使用
gzip
壓縮的rumenz.tar.gz
,所以要查閱rumenz.tar.gz
包內的文件時,就得要加上z
這個選項了
tar.gz
解壓縮
> tar -xzvf rumenz.tar.gz
tar.gz
解壓縮到/tmp目錄
> tar -xzvf rumenz.tar.gz -C /tmp
只解壓rumenz.tar.gz
里面的1.txt
,2.txt
> tar -zcvf rumenz.tar.gz *.txt
//查看rumenz.tar.gz里面的文件(在不解壓縮的情況下看)
> tar -ztvf rumenz.tar.gz
1.txt
2.txt
3.txt
4.txt
> tar -zxvf rumenz.tar.gz 1.txt 2.txt
1.txt
2.txt
> ls
1.txt 2.txt rumenz.tar.gz
壓縮文件並保留其權限
> tar -zcpvf rumenz.tar.gz 1.txt 2.txt 3.txt 4.txt
這個-p的屬性是很重要的,尤其是當您要保留原本文件的屬性時。
不打包壓縮某個文件(或目錄)
> tar --exclude rumenz/doc rumenz.tar.gz rumenz/*
在/etc
當中,比2021/01/01
新的文件才備份
> tar -N "2021/01/01" -zcvf etc.tar.gz /etc
bzip2 壓縮,查看,解壓
- 壓 縮:tar -jcvf rumenz.tar.bz2 rumenz
- 查 詢:tar -jtvf rumenz.tar.bz2
- 解壓縮:tar -jxvf rumenz.tar.bz2 -C test