文件壓縮與解壓
前面小節(jié)介紹了如何對文件和目錄刪除、移動操作,本小節(jié)介紹如何使用命令對文件和目錄進(jìn)行壓縮與解壓操作,常見的壓縮包格式有 .bz2、.Z、.gz、.zip、.xz,壓縮之后的文件或目錄占用更少的空間。
1. tar 命令介紹
下面列舉 tar 命令的參數(shù):
| tar 命令參數(shù)名稱 | 功能與作用描述 |
|---|---|
| -c | 新建立壓縮檔案 |
| -x | 解壓縮 |
| -t | 查看內(nèi)容 |
| -u | 更新原壓縮包的內(nèi)容 |
| -z | gzip 屬性的 |
| -j | bz2 屬性的 |
| -Z | compress 屬性的 |
| -v | 顯示所有過程 |
| -O | 將文件解壓縮成標(biāo)準(zhǔn)輸出形式 |
| -f | 使用檔案名字,此參數(shù)都是在最后,其后面跟上一個(gè)檔案的名字 |
Tips:其中
-c、-x、-t、-u這五個(gè)參數(shù)是獨(dú)立的,每次使用選其中一個(gè),-f是最后一個(gè)參數(shù),后面跟上檔案名。
1.1 將指定類型文件打包成 tar 包
為了演示方便,先切入到 /home 目錄下,使用 touch 命令創(chuàng)建幾個(gè) .txt 文件,然后使用 tar 命令將其打包,命令如下:
cd /home
touch a.txt b.txt c.txt d.txt e.txt
ls -l
tar -cf alltxt.tar *.txt
ls -l
執(zhí)行結(jié)果如下圖:

Tips:其中
alltxt.tar是一個(gè)自定義名稱,后綴是tar,前半部分的名字可自行定義,*.txt中的*表示通配符代表所有的意思。
1.2 向現(xiàn)有的 tar 包中新增文件
這里再使用 touch 命令創(chuàng)建一個(gè) g.txt 文件,使用 tar 命令將其新增至 alltxt.tar 中,命令如下:
touch g.txt
tar -rf alltxt.tar g.txt
執(zhí)行結(jié)果如下圖:

1.3 更新 原來 tar 包中的文件
使用 rm 命令刪除 /home 目錄中的 a.txt ,然后新建一個(gè) a.txt 表示為更新后的 a.txt,使用 tar 命令將 a.txt 更新至 alltxt.tar 中,命令如下:
rm -f a.txt
touch a.txt
tar -uf alltxt.tar a.txt
執(zhí)行結(jié)果如下圖:

Tips:若
alltxt.tar中沒有a.txt,那么使用tar -uf就會將a.txt新增到alltxt.tar中。
1.4 列出 tar 包中打包的所有文件
這里為了演示方便,將 /home 目錄原有的 .txt 文件全都刪除掉,然后使用 tar 命令查看 alltxt.tar 中所有文件列表,命令如下:
ls
rm -f *.txt
ls
tar -tf alltxt.tar
執(zhí)行結(jié)果如下圖:

1.5 解開 tar 包中所有文件
接著上面的內(nèi)容,可以使用 tar 命令將 alltxt.tar 解開把文件釋放到當(dāng)前目錄,命令如下:
ls
tar -xf alltxt.tar
ls
執(zhí)行結(jié)果如下圖:

1.6 使用 tar 命令壓縮
上面打包的 alltxt.tar 文件并沒有壓縮文件,只是把文件都打包在一起,如下命令可以把 alltxt.tar 壓縮成為不同格式的壓縮包:
ls
tar -czf alltxt.tar.gz alltxt.tar
ls
tar -cjf alltxt.tar.bz2 alltxt.tar
ls
tar -cZf alltxt.tar.Z alltxt.tar
ls
執(zhí)行結(jié)果如下圖:

Tips:命令中參數(shù)的含義可參考前面參數(shù)表格中的功能描述。
1.7 使用 tar 命令解壓縮
為了演示方便,防止讀者混淆,先將 alltxt.tar.gz、alltxt.tar.bz2、alltxt.tar.Z 三種格式壓縮包移動至 study 目錄,然后使用 tar 命令解壓,命令如下:
ls
mv alltxt.tar.gz study/
mv alltxt.tar.bz2 study/
mv alltxt.tar.Z study/
cd study/
ls
移動過程執(zhí)行如下圖:

如上圖所示,將需要解壓的三種格式壓縮包移動至 /home/study 目錄中,下面對其解壓縮,命令如下:
ls
tar -zxvf alltxt.tar.gz
ls
rm -f alltxt.tar
ls
tar -jxvf alltxt.tar.bz2
ls
rm -f alltxt.tar
ls
tar -Zxvf alltxt.tar.Z
ls
執(zhí)行結(jié)果如下圖:

Tips:命令中參數(shù)的含義可參考前面參數(shù)表格中的功能描述。
2. zip 格式壓縮與解壓
CentOS 8 系統(tǒng)中自帶 zip、unzip 壓縮與解壓工具,可以使用 zip -v、unzip -v 命令查看當(dāng)前是否安裝 zip、unzip 工具,若是沒有安裝,則可以使用如下命令安裝:
yum -y update
yum -y install zip unzip
安裝過程如下圖:

如上圖所示,先要更新 yum 源的軟件包數(shù)據(jù),如下圖所示為安裝 zip、unzip 的過程執(zhí)行圖:

Tips:
yum是 Linux 中的一個(gè)軟件管理倉庫,關(guān)于yum如何安裝軟件后續(xù)小節(jié)會詳細(xì)介紹。
2.1 使用 zip 壓縮文件
使用 zip 命令可以將 alltxt.tar 包壓縮為 .zip 壓縮包,命令如下:
ls
zip alltxt.zip alltxt.tar
ls
執(zhí)行結(jié)果如下:

Tips:可以使用
zip -r zip包名 目錄名遞歸壓縮目錄以及目錄中所有文件。
2.2 使用 unzip 解壓縮
為了演示方便,先將 alltxt.zip 文件移動至 /home/study 中,然后解壓,命令如下:
ls
mv alltxt.zip study/
cd study/
ls
unzip alltxt.zip
ls
執(zhí)行結(jié)果如下圖:

3. 小結(jié)
本小節(jié)介紹了如何使用 tar 命令打包文件和解開 tar 包,還介紹了如何使用 tar 將文件包壓縮為 .gz、.bz2、.Z 格式的壓縮包,如何解壓縮它們,最后還介紹了如何使用 zip、unzip 工具壓縮與解壓 .zip 格式的壓縮包,需要注意的是使用 tar 命令將文件打包成 tar 包之后,文件并沒有被壓縮,只是打包在一起了,壓縮文件前,也可以不打包成 tar 包,可以直接對某個(gè)文件和目錄進(jìn)行壓縮。
愛因詩賢 ·
2025 imooc.com All Rights Reserved |