一.什么是文件壓縮
將多個(gè)文件或目錄合并成為一個(gè)特殊的文件。
二.為什么要對(duì)文件進(jìn)行壓縮
1.壓縮文件會(huì)減小文件的體積
2.加快資源的傳輸
3.節(jié)省網(wǎng)絡(luò)的寬帶
三.Windows的壓縮包與Linux的壓縮包可以互通
1.Windows的壓縮包類型:rar? zip 等等的其他類型
2.Linux的壓縮包類型:zip tar.gz 等等的其他類型
PS:Linux不支持Windows下的rar格式的壓縮文件。所以Windows和Linux互通通常選擇zip格式。
四.Linux中常見壓縮包類型
.zip? ? ? ? zip壓縮工具
.gz? ? ? ? gzip壓縮工具,只能壓縮文件但是會(huì)刪除原文件(通常會(huì)配合tar使用)
.bz2? ? ? bzip2壓縮工具,只能壓縮文件但是會(huì)刪除原文件(通常會(huì)配合tar使用)? ? ?
.tar.gz? ? 先使用tar命令歸檔打包,然后使用gzip壓縮
.tar.bz2? 先使用tar命令歸檔打包,然后使用bzip壓縮
五.工具使用
1.gzip使用方法(gzip打包壓縮只對(duì)文件有效)
默認(rèn)情況下沒有g(shù)zip工具需要安裝:
yum? install? gzip? -y
gzip? 文件名? ? (打包)
例:[root@localhost ~]# gzip zy10.txt?
gzip? -d? 文件名.gz? (解包)
例:[root@localhost ~]# gzip -d zy10.txt.gz
zcat? 文件名.gz? ? ? ? ? (查看包內(nèi)文件的內(nèi)容)
例:[root@localhost ~]# zcat zy10.txt.gz
讓某個(gè)文件暫時(shí)失效和快速啟用
gzip? 文件名? ? (gzip? *? 打包當(dāng)前目錄所有文件)
gzip? -d? 文件名 (gzip -d * 解壓當(dāng)前目錄所有文件)
zcat? 文件名? (查看不想解壓的壓縮包)
2.zip? unzip 使用方法
默認(rèn)情況下沒有zip和unzip工具需要安裝:
yum? install? zip unzip? -y
zip? 壓縮包名.zip? 文件名? (壓縮文件為壓縮包)
例:[root@localhost ~]# zip zhangyao.zip zy10.txt
unzip? -l? 壓縮包名.zip? (查看包內(nèi)文件)
例:[root@localhost ~]# unzip -l zhangyao.zip
? (unzip -t zhangyao.zip 檢測(cè)文件是否都OK)
zip? -r? 壓縮包名.zip? 目錄名? (壓縮目錄)
例:[root@localhost ~]# zip -r tmp.zip /tmp/
zip? -T? 壓縮包名.zip? ? (查看壓縮包是否完整)
unzip? 壓縮包名.zip? ? (解壓壓縮包到當(dāng)前目錄)
例:[root@localhost ~]# unzip tmp.zip
unzip? 壓縮包名.zip? -d? 其他目錄? (解壓壓縮包到其他目錄)
例:[root@localhost ~]# unzip tmp.zip -d /home/
3.tar使用方法(tar是linux下最常用的壓縮與解壓的工具,支持文件和忽略的壓縮)? ? ------ du? -sh? (查看文件大?。?/p>
使用語法: tar? -czf? 文件名? 要打包的文件名? (打包)
例:[root@localhost ~]# tar -czf root.tar.gz /root/
tar? -czf? 目錄/ 文件名? 要打包的文件名 (打包到指定的某個(gè)目錄)
例:[root@localhost ~]# tar -czf /tmp/root.etc.atr.gz /etc/ /root/
c? ? ? 創(chuàng)建新的歸檔文件
x? ? ? 對(duì)歸檔文件解包
t? ? ? 列出歸檔文件里文件列表
f? ? ? 指定壓縮包文件名,參數(shù)f寫最后
z? ? ? 使用gzip壓縮歸檔后的文件(.tar.gz)
j? ? ? 使用bzip2壓縮歸檔后的文件(.tar.bz2)
J? ? ? 使用xz壓縮歸檔后的文件(.tar.xz)
C? ? 指定解壓目錄位置
X? ? 排除多個(gè)文件(寫入需要排除的文件名稱)
h? ? 打包軟連接
--exclude? ? 在打包的時(shí)候?qū)懭胄枰懦奈募蚰夸?/p>
常用打包與壓縮的組合
------------------------------------------------>>打包
czf? ? ? ? 打包tar.gz格式
cjf? ? ? ? ? 打包tar.bz2格式
cJf? ? ? ? 打包tar.xz格式(使用較少)
czhf? ? ? 打包tar.gz格式的軟連接
------------------------------------------------>>解包
zxf? ? ? ? 解壓tar.gz格式
jxf? ? ? ? ? 解壓tar.bz格式
xf? ? ? ? ? 自動(dòng)選擇解壓模式
tf? ? ? ? ? ? 查看壓縮包內(nèi)容
------------------------------------------------>>常用
czf? ? ? ? 打包tar.gz格式
tf? ? ? ? ? ? 查看壓縮包內(nèi)容
xf? ? ? ? ? 自動(dòng)選擇解壓模式
-C? ? ? ? ? 解壓到指定目錄
例:(tar? xf? root.tar.gz? -C /tmp/)
find和tar組合用法
1.[root@localhost ~]# find /root/ -type f | xargs tar -czf /tmp/root.txt.tar.gz
2. tar czf root.txt.tar.gz? $(find? /tmp/? -type f)
(root目錄下的所有文件打包到tmp目錄下)
4.--exclude=單個(gè)文件? (排除單個(gè)文件)
例:[root@localhost ~]# tar zcf root.tar.gz /root/ --exclude /root/zy11.txt
x排除多個(gè)文件
需要?jiǎng)?chuàng)建一個(gè)文件,將要排除的文件寫入文件中。(pc.txt)
例:tar? czXf? pc.txt? root.tar.gz /root/