linux 打包 壓縮

2021-09-23 18:00:16 字數 4746 閱讀 6583

[root@xiaoluo ~]# gzip [-cdtv#] 檔名

[root@xiaoluo ~]# zcat 檔名.gz

選項與引數:

-c :將壓縮的資料輸出到螢幕上,可通過過資料流重導向來處理;

-d :解壓縮的引數;

-t :可以用來檢驗乙個壓縮檔案的一致性,看看檔案有無錯誤;

-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊;

-# :壓縮等級(1~9),-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!預設是 -6  

-d或--decompress或----uncompress  解開壓縮檔案。

-r或--recursive  遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。

-v或--verbose  顯示指令執行過程。

例項一:將 /etc/passwd 複製到 /home 目錄下,並且以gzip進行壓縮

[root@xiaoluo home]# cp /etc/passwd passwd

[root@xiaoluo home]# ls -l

-rw-r--r--. 1 root root 2679 4月 26 19:37 passwd

[root@xiaoluo home]# gzip passwd

[root@xiaoluo home]# ls -l

-rw-r--r--. 1 root root 1066 4月 26 19:37 passwd.gz

例項二:將例項一的檔案內容讀出來

[root@xiaoluo home]# zcat passwd.gz

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

....................................此處省略n個字......................................

例項三:將例項一的檔案進行解壓縮

[root@xiaoluo home]# gzip -d passwd.gz

[root@xiaoluo home]# ls -l

-rw-r--r--. 1 root root 2679 4月 26 19:37 passwd

例項四:將例項三解壓縮的passwd檔案用最佳壓縮包進行壓縮,並保留原來的檔案

[root@xiaoluo home]# gzip -c9 passwd > passwd.gz

[root@xiaoluo home]# ls -l passwd*

-rw-r--r--. 1 root root 2679 4月 26 19:37 passwd

-rw-r--r--. 1 root root 1066 4月 26 19:52 passwd.gz

注意:當你使用 gzip 進行壓縮時,在預設的狀態下原本的檔案會被壓縮成為 .gz 的檔名, 原始檔案就不再存在了。所以如果要保留原來的檔案,可以使用例項四的方法來進行壓縮

我們知道,cat命令可以用來讀取乙個文字檔案的內容,那麼我們如果要來讀取壓縮檔案資料內容要使用什麼命令呢?就是上面例項的 zcat 命令了。

2.bzip2、bzcat

如果說gzip是為了取代compress命令,那麼bzip2這個命令就是gzip的另乙個公升級版本

[root@xiaoluo ~]# bzip2 [-cdkzv#] 檔名

[root@xiaoluo ~]# bzcat 檔名.bz2

選項與引數:

-c :將壓縮的過程產生的資料輸出到螢幕上

-d :解壓縮的引數

-k :保留原始檔案,而不會刪除原始的檔案

-z :壓縮的引數

-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊;

-# :與 gzip 同樣的,都是在計算壓縮比的引數, -9 最佳, -1 最快!

例項一:將剛才的passwd進行壓縮

[root@xiaoluo home]# bzip2 -z passwd

[root@xiaoluo home]# ls -l passwd*

-rw-r--r--. 1 root root 1102 4月 26 19:37 passwd.bz2

例項二:將例項一的檔案進行解壓縮

[root@xiaoluo home]# bzip2 -d passwd.bz2

[root@xiaoluo home]# ls -l passwd*

-rw-r--r--. 1 root root 2679 4月 26 19:37 passwd

例項三:將例項二的檔案進行壓縮,並保留原來的檔案

[root@xiaoluo home]# bzip2 -zk passwd

[root@xiaoluo home]# ls -l passwd*

-rw-r--r--. 1 root root 2679 4月 26 19:37 passwd

-rw-r--r--. 1 root root 1102 4月 26 19:37 passwd.bz2

使用gzip,副檔名自動為.gz。使用bzip2的話,副檔名就自動變成了.bz2.同樣,如果我們需要讀取bzip2壓縮檔案的資料內容時,使用bzcat命令即可

3.tar

這個命令我們應該見得挺多的,之前在進行解壓縮時,通常都是使用這個命令

上面提到的幾個命令大多僅能針對單一檔案來進行壓縮,雖然 gzip 與 bzip2 也能夠針對目錄來進行壓縮, 不過,這兩個命令對目錄的壓縮指的是【將目錄內的所有檔案 "分別" 進行壓縮】的動作! 而不像在 windows 的系統,可以使用類似 winrar這一類的壓縮軟體來將好多資料【打包成乙個檔案】的樣式。

這種將多個檔案或目錄包成乙個大檔案的命令功能,我們將其稱為 打包命令! 那麼linux系統下有沒有這樣的命令呢?當然是有點,tar命令就是咱們需要的打包命令。 tar 可以將多個目錄或檔案打包成乙個大檔案,同時還可以透過 gzip/bzip2 的支援,將該檔案同時進行壓縮。

[root@xiaoluo ~]# tar [-j|-z] [cv] [-f 建立的檔名] filename... <==打包與壓縮

[root@xiaoluo ~]# tar [-j|-z] [tv] [-f 建立的檔名] <==檢視檔名

[root@xiaoluo ~]# tar [-j|-z] [xv] [-f 建立的檔名] [-c 目錄] <==解壓縮

選項與引數:

-c :建立打包檔案,可搭配 -v 來察看過程中被打包的檔名(filename)

-t :檢視tarfile裡的檔案

-x :解打包或解壓縮的功能,可以搭配 -c (大寫) 在特定目錄解開

特別留意的是, -c, -t, -x 不可同時出現在一串命令列中。
-j :通過 bzip2 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2

-z :通過 gzip 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.gz

-v :在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來

-f filename:-f 後面要立刻接要被處理的檔名!建議 -f 單獨寫乙個選項

-c 目錄 :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。

-p :保留備份資料的原本許可權與屬性,常用於備份(-c)重要的配置檔案

-p :保留絕對路徑,亦即允許備份資料中含有根目錄存在之意;

--exclude=file:在壓縮的過程中,不要將 file 打包

例項一:將這個/etc目錄下的檔案全部打包成 /home/etc.tar

[root@xiaoluo home]# tar -cvf etc.tar /etc     -->> 這個命令只是用來打包,不進行壓縮

[root@xiaoluo home]# tar -zcvf etc.tar /etc    -->> 打包以後,使用gzip 對其進行壓縮

[root@xiaoluo home]# tar -jcvf etc.tar /etc    -->> 打包以後,使用bzip2 對其進行壓縮

例項二:檢視上述etc.tar 檔案裡有哪些內容

[root@xiaoluo ~]# tar -ztvf etc.tar

例項三:將etc.tar 檔案解壓縮到當前目錄下

[root@xiaoluo home]# tar -zxvf etc.tar

例項四:如果我只是希望將 etc.tar 中的 etc/passwd 解壓出來

[root@xiaoluo home]# tar -zxvf etc.tar etc/passwd

例項五:備份/etc 內的所有檔案,並且儲存其許可權

[root@xiaoluo home]# tar -zxvpf etc.tar.gz /etc/

例項六:在/home 中,比2013/04/01 新的檔案就進行備份

[root@xiaoluo home]# tar -n '2013/04/01' -zcvf home.tar /home

例項七:我要備份/home,/etc的所有檔案,但是不要備份/home/xiaoluo 這個目錄下的檔案

[root@xiaoluo home]# tar --exclude /home/xiaoluo -zcvf myfile.tar.gz /home/* /etc

例如:將檔案全部打包成tar包

例如:將tar 包解壓縮

#tar -zxvf /opt/soft/test/log.tar.gz解壓

linux 打包 壓縮

壓縮好處 1.節省空間 2.節省頻寬 解決脈絡 現在有各種壓縮檔案形式,原因何在?主要是壓縮技術更新換代,壓縮方法不完全相同。不同的字尾,便於區分。最早期的壓縮命令式compress,不過現在已經不怎麼用了。後來開發出新一代的壓縮命令gzip gnu zip 和壓縮比更好的bzip2壓縮命令。注意 ...

linux 打包 壓縮

閱讀目錄 回到頂部 壓縮好處 1.節省空間 2.節省頻寬 解決脈絡 現在有各種壓縮檔案形式,原因何在?主要是壓縮技術更新換代,壓縮方法不完全相同。不同的字尾,便於區分。最早期的壓縮命令式compress,不過現在已經不怎麼用了。後來開發出新一代的壓縮命令gzip gnu zip 和壓縮比更好的bzi...

Linux壓縮打包

1 gzip壓縮 gzip ma.txt 2 gzip解壓縮 gzip d ma.txt.gz 或者 gunzip ma.txt.gz 3 bzip2壓縮 bzip2 ma.dat 4 bzip2解壓縮 bzip2 d ma.dat.bz2 或者 bunzip2 ma.dat.bz2 5 打包 ta...