2018-1-5 4周4次課 壓縮工具 gzip、bzip2、xz
常用壓縮文件
·Windows .rar .zip .7z
·Linux .zip .gz .bz2 .xz .tar .gz .tar .bz2 tar .xz
Linux下後綴名並沒有Windows不重要,但是需要通過後綴名來判斷壓縮包是類型的文件
6.2 gzip壓縮工具
Linux下常用的壓縮工具:gzip,bzip2,xz,zip,tar
·gizp壓縮工具
首先準備一個文件
[root@localhost ~]# cd /tmp/ [root@localhost tmp]# mkdir d6z [root@localhost tmp]# cd d6z/ [root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@localhost d6z]# ll -h 總用量 2.2M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt ##文件實際大小和總用量有差距,裏面存在虛量
·壓縮命令:gzip 文件名
[root@localhost d6z]# gzip 1.txt [root@localhost d6z]# ll -h 總用量 436K -rw-r--r--. 1 root root 433K 1月 3 22:20 1.txt.gz
·解壓縮命令:gzip -d 壓縮包文件名 / unzip 1.txt.gz
[root@localhost d6z]# gzip -d 1.txt.gz [root@localhost d6z]# ll -h 總用量 1.7M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt ##壓縮解壓縮一次會將虛量擠掉
·另一個解壓縮命令:gunzip 壓縮包文件名
[root@localhost d6z]# gunzip 1.txt.gz [root@localhost d6z]# ll -h 總用量 1.7M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt
·設定壓縮級別(不能壓縮目錄):gzip -壓縮級別(1-9) 文件名
[root@localhost d6z]# gzip -1 1.txt ##指定壓縮級別,默認6級別,1為最快,9為最好 [root@localhost d6z]# ll -h 總用量 512K -rw-r--r--. 1 root root 512K 1月 3 22:20 1.txt.gz [root@localhost d6z]# gzip -9 1.txt ##壓縮到一定程度後,文件大小不會再有所變化 [root@localhost d6z]# ll -h 總用量 432K -rw-r--r--. 1 root root 431K 1月 3 22:20 1.txt.gz
·查看壓縮文件內容:zcat 壓縮包文件名
[root@localhost d6z]# zcat 1.txt.gz
內容過多,不詳細展示
·壓縮時指定壓縮文件保存目錄並且不刪除源文件:gzip -c 文件名 > 壓縮包絕對路徑
[root@localhost d6z]# gzip -c 1.txt > /tmp/1.txt.gz [root@localhost d6z]# ll 總用量 1664 -rw-r--r--. 1 root root 1700160 1月 3 22:20 1.txt [root@localhost d6z]# ls 1.txt [root@localhost d6z]# ls /tmp/1.txt.gz /tmp/1.txt.gz [root@localhost d6z]# file !$ file /tmp/1.txt.gz /tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Wed Jan 3 22:20:29 2018
·解壓縮文件時不刪除原壓縮文件:gunzip -c 壓縮文件絕對路徑 > 目標文件路徑 / gzip -d -c
[root@localhost d6z]# gunzip -c /tmp/1.txt.gz > /tmp/d6z/2.txt [root@localhost d6z]# ls /tmp/ 1.txt.gz systemd-private-563dd467f5694de9a79e64f675ddbbd6-chronyd.service-pvAtKB d6z systemd-private-563dd467f5694de9a79e64f675ddbbd6-vgauthd.service-CxHB7l ks-script-ThyP1C systemd-private-563dd467f5694de9a79e64f675ddbbd6-vmtoolsd.service-0pWLAR passwd yum.log [root@localhost d6z]# du -sh 1.txt 2.txt 1.7M1.txt 1.7M2.txt
6.3 bzip2壓縮工具
bzip2和gzip比壓縮更狠,使用方法差不錯
·壓縮命令:bzip2 文件名 (不支持壓縮目錄)
[root@localhost d6z]# bzip2 1.txt [root@localhost d6z]# ls 1.txt.bz2 2.txt [root@localhost d6z]# du -sh 1.txt.bz2 164K1.txt.bz2
·解壓縮命令:bzip2 -d 壓縮文件名 / bunzip2 壓縮文件名
[root@localhost d6z]# bzip2 -d 1.txt.bz2 [root@localhost d6z]# ll -h 總用量 3.3M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt -rw-r--r--. 1 root root 1.7M 1月 3 22:56 2.txt [root@localhost d6z]# bzip2 1.txt [root@localhost d6z]# bunzip2 1.txt.bz2 [root@localhost d6z]# ll -h 總用量 3.3M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt -rw-r--r--. 1 root root 1.7M 1月 3 22:56 2.txt
·壓縮到一個指定目錄下:bzip2 -c 文件名 > 壓縮文件絕對路徑
[root@localhost d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2 [root@localhost d6z]# ll -h 總用量 3.3M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt -rw-r--r--. 1 root root 1.7M 1月 3 22:56 2.txt [root@localhost d6z]# ll -h /tmp/ 總用量 616K -rw-r--r--. 1 root root 163K 1月 4 21:32 1.txt.bz2 -rw-r--r--. 1 root root 433K 1月 3 22:51 1.txt.gz drwxr-xr-x. 2 root root 32 1月 4 21:26 d6z -rwx------. 1 root root 836 12月 28 05:59 ks-script-ThyP1C -rw-r--r--. 1 root root 10K 12月 31 23:18 passwd drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh -rw-------. 1 root root 0 12月 28 05:36 yum.log
·解壓縮到指定目錄下:bzip2 -d -c
[root@localhost d6z]# bzip2 -d -c /tmp/1.txt.bz2 > 3.txt [root@localhost d6z]# ll -h 總用量 4.9M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt -rw-r--r--. 1 root root 1.7M 1月 3 22:56 2.txt -rw-r--r--. 1 root root 1.7M 1月 4 21:35 3.txt [root@localhost d6z]# ll -h /tmp/ 總用量 616K -rw-r--r--. 1 root root 163K 1月 4 21:32 1.txt.bz2 -rw-r--r--. 1 root root 433K 1月 3 22:51 1.txt.gz drwxr-xr-x. 2 root root 45 1月 4 21:35 d6z -rwx------. 1 root root 836 12月 28 05:59 ks-script-ThyP1C -rw-r--r--. 1 root root 10K 12月 31 23:18 passwd drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh -rw-------. 1 root root 0 12月 28 05:36 yum.log
·設定壓縮級別:bzip2 -壓縮級別(1-9) 文件名
[root@localhost d6z]# bzip2 -9 1.txt [root@localhost d6z]# du -sh 1.txt.bz2 164K1.txt.bz2
(bzip2默認壓縮級別就是9)
·查看壓縮文件內容:bzcat 壓縮文件名
[root@localhost d6z]# bzcat 1.txt.bz2
內容過多,不詳細展示
疑問:gzip壓縮過的文件用bzip2工具能解壓縮嗎?或者bzip2壓縮過的文件用gzip解壓?
[root@localhost d6z]# gzip -d 1.txt.bz2
gzip: 1.txt.bz2: unknown suffix -- ignored
[root@localhost d6z]# bunzip2 /tmp/1.txt.gz
bunzip2: Can't guess original name for /tmp/1.txt.gz -- using /tmp/1.txt.gz.out
bunzip2: /tmp/1.txt.gz is not a bzip2 file.
答案當然是不可以~!
6.4 xz壓縮工具
·壓縮命令:xz 文件名 / xz -z 文件名 (不能壓縮目錄)
[root@localhost d6z]# xz 1.txt [root@localhost d6z]# ll -h 總用量 3.4M -rw-r--r--. 1 root root 56K 1月 3 22:20 1.txt.xz ##壓縮級別很高 -rw-r--r--. 1 root root 1.7M 1月 3 22:56 2.txt -rw-r--r--. 1 root root 1.7M 1月 4 21:35 3.txt
·解壓縮命令:xz -d 壓縮文件名 / unxz 壓縮文件名
[root@localhost d6z]# unxz 1.txt.xz [root@localhost d6z]# ll -h 總用量 4.9M -rw-r--r--. 1 root root 1.7M 1月 3 22:20 1.txt -rw-r--r--. 1 root root 1.7M 1月 3 22:56 2.txt -rw-r--r--. 1 root root 1.7M 1月 4 21:35 3.txt
·設定壓縮級別:xz -級別 文件名 (1-9,默認6)
[root@localhost d6z]# xz -9 1.txt [root@localhost d6z]# ll -h 總用量 3.4M -rw-r--r--. 1 root root 56K 1月 3 22:20 1.txt.xz -rw-r--r--. 1 root root 1.7M 1月 3 22:56 2.txt -rw-r--r--. 1 root root 1.7M 1月 4 21:35 3.txt
·查看壓縮文件內容:xzcat 壓縮文件名
[root@localhost d6z]# xzcat 1.txt.xz
內容過多,不詳細展示
·壓縮到指定目錄:xz -c 文件名 > 壓縮文件絕對路徑
[root@localhost d6z]# xz -c 1.txt > /tmp/1.txt.xz [root@localhost d6z]# ll 總用量 4992 -rw-r--r--. 1 root root 1700160 1月 3 22:20 1.txt ##被壓縮的文件不會被刪除 -rw-r--r--. 1 root root 1700160 1月 3 22:56 2.txt -rw-r--r--. 1 root root 1700160 1月 4 21:35 3.txt [root@localhost d6z]# ll /tmp/ 總用量 672 -rw-r--r--. 1 root root 166901 1月 4 21:32 1.txt.bz2 -rw-r--r--. 1 root root 442631 1月 3 22:51 1.txt.gz -rw-r--r--. 1 root root 57088 1月 4 22:00 1.txt.xz drwxr-xr-x. 2 root root 45 1月 4 21:59 d6z -rwx------. 1 root root 836 12月 28 05:59 ks-script-ThyP1C -rw-r--r--. 1 root root 10152 12月 31 23:18 passwd drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh -rw-------. 1 root root 0 12月 28 05:36 yum.log
·解壓縮到指定目錄:xz -d -c 壓縮文件絕對路徑 > 文件名
[root@localhost d6z]# xz -d -c /tmp/1.txt.xz > 4.txt [root@localhost d6z]# ll /tmp/ 總用量 672 -rw-r--r--. 1 root root 166901 1月 4 21:32 1.txt.bz2 -rw-r--r--. 1 root root 442631 1月 3 22:51 1.txt.gz -rw-r--r--. 1 root root 57088 1月 4 22:00 1.txt.xz ##被解壓縮的文件不會被刪除 drwxr-xr-x. 2 root root 58 1月 4 22:01 d6z -rwx------. 1 root root 836 12月 28 05:59 ks-script-ThyP1C -rw-r--r--. 1 root root 10152 12月 31 23:18 passwd drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e drwx------. 3 root root 17 1月 4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh -rw-------. 1 root root 0 12月 28 05:36 yum.log [root@localhost d6z]# ll 總用量 6656 -rw-r--r--. 1 root root 1700160 1月 3 22:20 1.txt -rw-r--r--. 1 root root 1700160 1月 3 22:56 2.txt -rw-r--r--. 1 root root 1700160 1月 4 21:35 3.txt -rw-r--r--. 1 root root 1700160 1月 4 22:01 4.txt ##被解壓出的文件
2018-1-5 4周4次課 壓縮工具 gzip、bzip2、xz