[toc] 壓縮打包 壓縮打包介紹 windows .rar Linux`有自己所特有的壓縮工具。 如果希望windows和Linux互相能使用的壓縮工具, 建議 格式 壓縮的好處主要有: 節省磁碟空間占用率 節省網路傳輸帶寬消耗 網路傳輸更加快捷 類型 | 格式 | 壓縮工具 | | | | ...
目錄
壓縮打包
壓縮打包介紹
windows下我們接觸最多的壓縮文件就是
.rar格式, 但
Linux有自己所特有的壓縮工具。 如果希望windows和Linux互相能使用的壓縮工具, 建議
.zip`格式
壓縮的好處主要有:
節省磁碟空間占用率
節省網路傳輸帶寬消耗
網路傳輸更加快捷
類型
格式 | 壓縮工具 |
---|---|
.zip | zip壓縮工具 |
.gz | gzip壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用) |
.bz2 | bzip2壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用) |
.tar.gz | 先使用tar命令歸檔打包,然後使用gzip壓縮 |
tar.bz2 | 先使用tar命令歸檔打包,然後使用bzip壓縮 |
註意:
1.linux下常用的壓縮文件以.tar.gz
2.linux下壓縮文件必須帶尾碼
gzip壓縮工具
#安裝gzip壓縮工具
[root@db04 ~]# yum install -y gzip
#創建文件
[root@db04 ~]# echo 123 >> file1
#壓縮file1
[root@db04 ~]# gzip file1
#查看文件
[root@db04 ~]# ll
總用量 4
-rw-r--r-- 1 root root 30 6月 23 17:31 file1.gz
#查看文件類型
[root@db04 ~]# file file1.gz
file1.gz: gzip compressed data, was "file1", from Unix, last modified: Sun Jun 23 17:31:54 2019
#查看gzip壓縮後的文件內容
[root@db04 ~]# zcat file1.gz
123
#解壓文件
[root@db04 ~]# gzip -d file1.gz
#查看文件
[root@db04 ~]# ll
總用量 4
-rw-r--r-- 1 root root 4 6月 23 17:31 file1
練習題:
把/etc目錄 拷貝/root下,找到/root/etc/下麵所有一級二級目錄中的 普通文件,壓縮
[root@oldboyedu ~]# find /root/etc/ -maxdepth 2 -type f|xargs gzip
註意:
1.gzip不可以壓縮目錄,只能壓縮文件
2.gzip壓縮的文件不在當前目錄下
3.壓縮會刪除源文件
4.解壓會刪除壓縮文件
zip壓縮工具
-r:遞歸壓縮
#壓縮
[root@oldboyedu ~]# zip zls.zip file1
#解壓
[root@oldboyedu ~]# unzip zls.zip
Archive: zls.zip
replace file1? [y]es, [n]o, [A]ll, [N]one, [r]ename:
替換 不替換 替換所有 啥也不做 改名
#壓縮目錄
[root@oldboyedu tmp]# zip -r tmp_dir2.zip /tmp/
註意:
1.壓縮不會刪除源文件
2.解壓不會刪除壓縮文件
3.解壓後會覆蓋源文件內容
tar壓縮文件
tar
是linux
下最常用的壓縮與解壓縮, 支持文件和目錄的壓縮歸檔
#語法:tar [-zjxcvfP] filename
c //創建新的歸檔文件
x //對歸檔文件解包
t //列出歸檔文件里的文件列表
v //輸出命令的歸檔或解包的過程
f //指定包文件名,多參數f寫最後
C //指定解壓目錄位置
z //使用gzip壓縮歸檔後的文件(.tar.gz)
j //使用bzip2壓縮歸檔後的文件(.tar.bz2)
J //使用xz壓縮歸檔後的文件(tar.xz)
X //排除多個文件(寫入需要排除的文件名稱)
h //打包軟鏈接
P //連帶絕對路徑打包
--hard-dereference //打包硬鏈接
--exclude //在打包的時候寫入需要排除文件或目錄
//常用打包與壓縮組合
czf //打包tar.gz格式
cjf //打包tar.bz格式
cJf //打包tar.xz格式
zxf //解壓tar.gz格式
jxf //解壓tar.bz格式
xf //自動選擇解壓模式
tf //查看壓縮包內容
//以gzip歸檔方式打包並壓縮
tar czf test.tar.gz test/ test2/
//以bz2方式壓縮
tar cjf test.tar.bz2 dir.txt dir/
//打包鏈接文件,打包鏈接文件的真實文件
[root@zls ~]# cd /
[root@zls /]# tar czfh local.tar.gz etc/rc.local
#打包/tmp下所有文件
[root@zls ~]# cd /
[root@zls /]# find tmp/ -type f | xargs tar czf tmp.tar.gz
#打包/tmp下所有文件
[root@zls /]# tar czf tmp.tar.gz | xargs find tmp/ -type f
#打包/tmp下所有文件
[root@zls /]# tar czf tmp.tar.gz $(find tmp/ -type f)
註意:
不要使用絕對路徑
如果非要打包絕對路徑:[root@oldboyedu ~]# tar zcfP b.sh.tar.gz /usr/local/nginx/a.sh
解壓的時候:[root@oldboyedu ~]# tar xfP b.sh .tar.gztar打包可以接多個文件f
tar zcf abc1 .tar.gz 1.txt 2.txt 3.txt
排除文件,並打包壓縮
#排除單個文件
[root@zls /]# tar czf etc.tar.gz --exclude=etc/services etc/
#排除多個文件
[root@zls /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
[root@zls /]# tar czf etc.tar.gz --exclude=etc/{services,passwd,shadow,gshadow,group}
#將需要排除的文件寫入文件中
[root@zls /]# cat paichu.list
etc/services
etc/rc.local
etc/rc.d/rc.local
#指定需要排除的文件列表, 最後進行打包壓縮
[root@zls /]# tar czfX etc.tar.gz paichu.list etc/
解壓壓縮文件
//解包或者解壓縮
[root@zls /]# tar xf test.tar.gz
//將tar.gz解壓至其他目錄
[root@student ~]# tar xf /etc/local.tar.gz -C /tmp
註意:不管是打包還是解包,源文件是不會刪除,但會覆蓋當前已經存在的文件或者目錄
小結
格式 | 壓縮工具 |
---|---|
.zip | zip壓縮工具 zip -r dir.zip dirname zip file.zip filename |
.bz2 | gzip壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用) |
.tar.gz | 先使用tar命令歸檔打包,然後使用gzip壓縮 tar zcf dirname.tar.gz dirname |
.tar.bz2 | 先使用tar命令歸檔打包,然後使用bzip壓縮 tar cjf dirname.tar.bz2 dirname |
.tar.xz | tar cJf dirname.tar.xz dirname |
常用打包與壓縮組合
czf //打包tar.gz格式
cjf //打包tar.bz格式
cJf //打包tar.xz格式
xf //自動選擇解壓模式
tf //查看壓縮包內容