五個(gè) Linux 壓縮與歸檔命令詳解:效果對(duì)比+實(shí)戰(zhàn)技巧
在日常運(yùn)維工作中,不可避免會(huì)打包壓縮和解壓文件,Linux上有多個(gè)類似功能的命令,如 tar、gzip、bzip2、xz、zip。今天就跟大家一起區(qū)分一下并學(xué)會(huì)如何高效實(shí)用它們。

1. 先搞清楚:歸檔 vs 壓縮
很多新手容易混淆:
- 歸檔(Archive):把多個(gè)文件/目錄打包成一個(gè)文件,但體積沒縮小。常用命令:tar
- 壓縮(Compress):通過算法減少文件體積。常用命令:gzip、bzip2、xz、zip
比如:你把一堆源代碼打包成 project.tar —— 這只是歸檔。 然后再對(duì)它壓縮成 project.tar.gz —— 這才是真正的“壓縮包”。
2 歸檔命令:tar
tar 是 Linux 歸檔工具之王,簡(jiǎn)單舉例,后面有跟其他壓縮命令組合使用實(shí)例。
功能 | 命令 |
打包 | tar -cvf archive.tar file1 file2 dir/ |
解包 | tar -xvf archive.tar |
查看內(nèi)容 | tar -tvf archive.tar |
常用參數(shù):
參數(shù) | 含義 | 備注 |
-c | create,創(chuàng)建歸檔 | 打包 |
-x | extract,解包 | 解壓 |
-t | list,列出內(nèi)容 | 查看歸檔里有什么 |
-v | verbose,顯示過程 | 方便觀察進(jìn)度 |
-f | file,指定歸檔文件名 | 一般放最后,必須有 |
-C dir | 切換到指定目錄 | 常用在解壓到目標(biāo)路徑 |
--exclude=PATTERN | 排除文件 | 打包時(shí)跳過某些目錄/文件 |
--delete | 從歸檔中刪除 | 注意:只對(duì)未壓縮的 .tar 有效 |
3. 壓縮命令
Linux 有多種壓縮工具,區(qū)別主要在 壓縮比和速度。
【溫馨提示】bzip2/xz命令在壓縮時(shí),默認(rèn)原始的文件被刪除,如果你想要壓縮后還留著原文件,可以加參數(shù) -k。
(1) gzip
# 壓縮生成 file.txt.gz,源文件消失
gzip file.txt
# 解壓
gunzip file.txt.gz
或者使用
gzip -d file.txt.gz特點(diǎn):快、常用,適合一般場(chǎng)景。
(2) bzip2
# 有些系統(tǒng)版本需要自行安裝
yum install -y bzip2
# 壓縮生成 file.txt.bz2,源文件消失
bzip2 file.txt
# 保留源文件
bzip2 -k file.txt
# 解壓
bunzip2 file.txt.bz2特點(diǎn):壓縮比高,但速度比 gzip 慢。
(3) xz
# 壓縮生成 file.txt.xz,源文件消失
xz file.txt
# 解壓
unxz file.txt.xz特點(diǎn):壓縮比高,適合長(zhǎng)期存檔。
(4) zip
# 壓縮
zip archive.zip file1 file2 dir/
# 解壓
unzip archive.zip特點(diǎn):跨平臺(tái)通用(Windows 友好)。
4. tar 與壓縮結(jié)合技
平時(shí)我們最常見的就是 tar + 壓縮的組合:
格式 | 命令 |
.tar.gz | tar -czvf archive.tar.gz file1 dir/ |
.tar.bz2 | tar -cjvf archive.tar.bz2 file1 dir/ |
.tar.xz | tar -cJvf archive.tar.xz file1 dir/ |
對(duì)應(yīng)解壓:
tar -xzvf archive.tar.gz # 解壓 .tar.gz
tar -xjvf archive.tar.bz2 # 解壓 .tar.bz2
tar -xJvf archive.tar.xz # 解壓 .tar.xz小技巧:參數(shù)里的 z/j/J 分別代表 gzip/bzip2/xz。
5. 實(shí)戰(zhàn)對(duì)比
我們用一個(gè) 100MB 的日志文件 來實(shí)驗(yàn),看看壓縮差別:
(1) 測(cè)試文件
我準(zhǔn)備了四個(gè)一樣大的文件:

(2) 分別壓縮
gzip test1.log
bzip2 test2.log
xz test3.log
zip test4.zip test4.log(3) 查看大小
ll -h
結(jié)論:
- bzip2 壓縮率最高,適合長(zhǎng)期存檔
- gzip & zip 差不多,gzip 在 Linux 更常見
- xz 介于兩者之間
6. 實(shí)用技巧
解壓到指定目錄:
tar -xvf archive.tar.gz -C /data只打包指定目錄下的文件,不含目錄本身:
tar -czvf code.tar.gz -C /path/to/code .只解壓某個(gè)文件:
tar -xvf archive.tar.gz path/to/file壓縮比測(cè)試(適合硬盤黨):
tar -cvf - bigdir/ | xz > bigdir.tar.xz7. 生產(chǎn)環(huán)境使用總結(jié)
- 歸檔用 tar,壓縮選 gzip/bzip2/xz
- 日常:tar.gz 足夠 → 快捷 & 通用
- 高壓縮:tar.bz2 → 節(jié)省空間
- 跨平臺(tái):zip → Windows 友好
只要記住這套邏輯,你就能輕松應(yīng)對(duì) 99% 的 Linux 壓縮歸檔需求。































