Debian8系統(tǒng)文件如何壓縮與歸檔
Debian8系統(tǒng)文件如何壓縮與歸檔
debian8系統(tǒng)文件如何壓縮與歸檔?本教程以debian8系統(tǒng)為例
本配置適用于debian8,9版本
1.tar
1.1命令與參數(shù)
用法:tar [參數(shù)] [壓縮文件名] [要壓縮的文件]
使用參數(shù)時(shí),可以不使用
-c create,創(chuàng)建文件
-x extract,提取解壓還原文件
-v 顯示執(zhí)行顯示過程
-f 指定備份文件
-t 列出備份文件內(nèi)容,不解包查看包中的內(nèi)容
-C 指定解包位置
-z --gzip,以gzip方式壓縮 擴(kuò)展名:tar.gz
-j 以bz2方式壓縮 擴(kuò)展名:tar.bz2
-J 以xz方式壓縮 擴(kuò)展名:tar.xz
1.2歸檔例子
打包/etc/hosts文件
[root@debian ~]# tar cvf hosts.tar /etc/hosts
tar: Removing leading `/' from member names
/etc/hosts
[root@debian ~]# ll hosts.tar
-rw-r--r--. 1 root root 10240 Sep 14 20:16 hosts.tar
在使用絕對(duì)路徑進(jìn)行壓縮時(shí),將默認(rèn)從文件名中刪除該路徑中前面的/符號(hào),這樣解壓時(shí),會(huì)直接解壓到當(dāng)前目錄,不然會(huì)覆蓋掉原系統(tǒng)中的路徑文件。
指定路徑解包
[root@debian ~]# tar xvf hosts.tar -C /opt/
etc/hosts
[root@debian ~]# ll /opt/etc/
total 4
-rw-r--r--. 1 root root 158 Jun 7 2013 hosts
打包多個(gè)文件
[root@debian ~]# tar cvf all.tar /etc/hosts /opt/etc/ /etc/passwd
tar: Removing leading `/' from member names
/etc/hosts
/opt/etc/
/opt/etc/hosts
/etc/passwd
[root@debian ~]# ll all.tar
-rw-r--r--. 1 root root 10240 Sep 14 20:25 all.tar
不解包文件的情況下,查看包有什么文件
[root@debian ~]# tar -tvf all.tar
-rw-r--r-- root/root 158 2013-06-07 10:31 etc/hosts
drwxr-xr-x root/root 0 2018-09-14 20:23 opt/etc/
-rw-r--r-- root/root 158 2013-06-07 10:31 opt/etc/hosts
-rw-r--r-- root/root 1040 2018-08-15 13:36 etc/passwd
打包多目錄
[root@debian ~]# tar cvf dir.tar /etc/ /var/
[root@debian ~]# ll dir.tar
-rw-r--r--. 1 root root 149657600 Sep 14 20:29 dir.tar
1.3打包加壓縮
例1:以gzip進(jìn)行壓縮
[root@debian ~]# tar zcvf hosts.tar.gz /etc/hosts
tar: Removing leading `/' from member names
/etc/hosts
對(duì)比不壓縮的包大小
[root@debian ~]# du -h hosts.*
12K hosts.tar
4.0K hosts.tar.gz
解壓
[root@debian ~]# tar zxvf hosts.tar.gz
etc/hosts
例2:以xz方式壓縮
[root@debian ~]# tar Jcvf hosts.tar.xz /etc/hosts
tar: Removing leading `/' from member names
/etc/hosts
解壓
[root@debian ~]# tar Jxvf hosts.tar.xz
etc/hosts
1.4對(duì)比三種打包方式的大小與速度
對(duì)比速度
[root@debian ~]# time tar zcvf etc.tar.gz /etc/
real 0m0.868s
user 0m0.740s
sys 0m0.099s
[root@debian ~]# time tar jcvf etc.tar.bz2 /etc/
real 0m2.037s
user 0m1.933s
sys 0m0.078s
[root@debian ~]# time tar Jcvf etc.tar.xz /etc/
real 0m9.828s
user 0m9.577s
sys 0m0.193s
time命令輸入解釋
real: 表示程序整個(gè)的運(yùn)行耗時(shí)?梢岳斫鉃槊钸\(yùn)行開始時(shí)刻你看了一下手表,命令運(yùn)行結(jié)束時(shí),你又看了一下手表,兩次時(shí)間的差值就是本次real 代表的值
user:這個(gè)時(shí)間代表的是命令運(yùn)行在用戶態(tài)的cpu時(shí)間
sys: 這個(gè)時(shí)間代表的命令是運(yùn)行在核心態(tài)的cpu時(shí)間
%cpu_usage = (user_time sys_time)/real_time * 100%
我們這里只看速度的話,tar.gz最快,bz2次之。
對(duì)比大小
[root@debian ~]# du -sh /etc/
22M /etc/
[root@debian ~]# du -h etc*
6.0M etc.tar.bz2
6.9M etc.tar.gz
5.0M etc.tar.xz
壓縮時(shí)間越久,效率就越高。
2.zip
2.1命令參數(shù)
需要安裝
[root@debian ~]# yum install zip unzip -y
zip 壓縮命令
unzip 解壓命令
參數(shù):
-r 遞歸壓縮,壓縮目錄
-d 指定加壓位置
2.1例子
壓縮hosts
[root@debian ~]# zip hosts.zip /etc/hosts
adding: etc/hosts (deflated 65%)
[root@debian ~]# du -h hosts.zip
4.0K hosts.zip
解壓
[root@debian ~]# unzip hosts.zip
Archive: hosts.zip
inflating: etc/hosts
3.gzip、bzip2、xz壓縮工具
3.1gzip、bzip2、xz的使用
[root@debian test]# touch test01
[root@debian test]# gzip test01
[root@debian test]# ls
test01.gz
解壓
[root@debian test]# gzip -d test01.gz
[root@debian test]# ls
test01
只能對(duì)文件進(jìn)行壓縮,且壓縮后源文件會(huì)消失,一般不適用
bzip2,xz這兩個(gè)工具可以通過添加參數(shù)-k來(lái)保留源文件
bzip2
[root@debian test]# touch test02
[root@debian test]# bzip2 -k test02
test01.gz test02 test02.bz2
解壓
[root@debian test]# rm -f test02
[root@debian test]# ls
test01 test02.bz2
[root@debian test]# bzip2 -d test02.bz2 -k
[root@debian test]# ls
test01 test02 test02.bz2
xz
[root@debian test]# xz -k test03
[root@debian test]# ls
test01 test02 test02.bz2 test03 test03.xz
[root@debian test]# rm -f test03
[root@debian test]# xz -d test03.xz -k
[root@debian test]# ls
test01 test02 test02.bz2 test03 test03.xz