1.什么是文件壓縮?
將多個(gè)文件或目錄合并成為一個(gè)特殊的文件
2.為什么要對文件進(jìn)行壓縮向抢?
我們在傳輸大量的文件時(shí)转晰,通常都會選擇將該文件進(jìn)行壓縮莲蜘,然后在進(jìn)行傳輸熟呛。首先:壓縮后的文件會比壓縮前的文件小静檬。一個(gè)28G的文件夾壓縮后能達(dá)到6G其次:多個(gè)文件傳輸很慢炭懊,但單個(gè)文件傳輸會很快,同時(shí)還能節(jié)省網(wǎng)絡(luò)的消耗拂檩。
3.Windows的壓縮包與Linux的壓縮包能否互通凛虽?
windows系統(tǒng) :rar 或 zip
Linux系統(tǒng) zip 和 tar.gz
Linux上的壓縮格式放在windows系統(tǒng)下都是可以正常打開的。
注: Linux不支持 Windows下的 RAR 格式的壓縮文件广恢。Windows和Linux互通通常選擇 zip
4.Linux下壓縮包有哪些常見的類型
格式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 壓縮工具
.zip? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?zip壓縮工具(必須要會)
.gz? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? gzip壓縮工具凯旋,只能壓縮文件,會刪除原文件(通常配合tar使用)
.bz2? ? ? ? ? ? ? ? ? ? ? ? ? bzip2壓縮工具钉迷,只能壓縮文件至非,會刪除原文件(通常配合tar使用)
.tar.gz? ? ? ? ? ? ? ? ? ? ? 先使用tar命令歸檔打包,然后使用gzip壓縮(必須會)
.tar.bz2? ? ? ? ? ? ? ? ? ? ? ? ?先使用tar命令歸檔打包糠聪,然后使用bzip壓縮
5.gzip(僅對文件有效)
yum -y install gzip?
?gzip file? ? ? ? ? ? ? 對文件進(jìn)行壓縮(打包)
?zcat file.gz? ? ? ? ? 查看gz壓縮后的文件(查看)
?gzip -d file.gz? ? 解壓gzip的壓縮包(解包)
讓某個(gè)文件不生效時(shí)
?gzip CentOS-Vault.repo --> CentOS-Vault.repo.gz?
zcat CentOS-Vault.repo.gz? --> 查看不想解壓的壓縮包文件內(nèi)容
6.zip
使用zip命令可以對文件進(jìn)行壓縮打包荒椭,解壓則需要使用unzip命令
默認(rèn)情況下沒有zip和unzip工具,需要進(jìn)行安裝 yum -y install zip unzip
①壓縮文件為zip包
zip? filename.zip? filename
②壓縮目錄為zip包?
zip -r? dir.zip dir/
③查看zip壓縮包是否是完整的? ? ? ?
zip -T? filename.zip
結(jié)果 test of filename.zip OK
④不解壓壓縮查看壓縮包中的內(nèi)容
unzip -l? filename.zip?
unzip -t? filename.zip
⑤解壓zip文件包, 默認(rèn)解壓至當(dāng)前目錄? ? ? ? ?
unzip? filename.zip
⑥解壓zip內(nèi)容至/opt目錄
unzip filename.zip? -d /opt/
7.tar打包與壓縮
tar是linux下最常用的壓縮與解壓縮, 支持文件和目錄的壓縮歸檔
tar [-zjxcvfpP]? ? filename?
c? #創(chuàng)建新的歸檔文件
x? #對歸檔文件解包
t? #列出歸檔文件里的文件列表
v? #輸出命令的歸檔或解包的過程
f? #指定包文件名舰蟆,多參數(shù)f寫最后
z? #使用gzip壓縮歸檔后的文件(.tar.gz)
j? #使用bzip2壓縮歸檔后的文件(.tar.bz2)
J? #使用xz壓縮歸檔后的文件(tar.xz)
C? #指定解壓目錄位置
X? #排除多個(gè)文件(寫入需要排除的文件名稱)
h? ? #打包軟鏈接
--hard-dereference? #打包硬鏈接
--exclude? #在打包的時(shí)候?qū)懭胄枰懦募蚰夸?/p>
#常用打包與壓縮組合
czf? ? #打包tar.gz格式**
cjf? ? #打包tar.bz格式
cJf? ? #打包tar.xz格式
zxf? ? #解壓tar.gz格式
jxf? ? #解壓tar.bz格式
xf? ? ? ? #自動選擇解壓模式**
tf? ? ? ? #查看壓縮包內(nèi)容**
①.將文件或目錄進(jìn)行打包壓縮
以gzip歸檔方式打包并壓縮
tar czf? test.tar.gz? test/ test2/
以bz2方式壓縮
?tar cjf? test.tar.bz2 dir.txt dir/
打包鏈接文件,打包鏈接文件的真實(shí)文件
[root@oldboy ~]# cd /
[root@oldboy ~]# tar czfh local.tar.gz? etc/rc.local
打包/tmp下所有文件
[root@oldboy ~]# cd /
[root@oldboy ~]#find tmp/ -type f | xargs tar czf tmp.tar.gz
打包/tmp下所有文件
tar czf tmp.tar.gz $(find /tmp/ -type f)
解壓到指定目錄
tar xf /etc/local.tar.gz? -C /tmp
②.排除文件, 并打包壓縮
排除單個(gè)文件?
tar czf etc.tar.gz --exclude=etc/services etc/
排除多個(gè)文件
tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
將需要排除的文件寫入文件中
cat paichu.list
指定需要排除的文件列表, 最后進(jìn)行打包壓縮
tar czfX etc.tar.gz paichu.list etc/