Linux文件壓縮和打包(上)

6.1壓縮打包介紹linux

6.2gzip壓縮工具windows

6.3bzip2壓縮工具bash

6.4xz壓縮工具服務器

文件壓縮後的大小不能更具壓縮工具來定論,他的大小是根據文件的內容和壓縮工具一塊兒定論的。less

6.1壓縮打包介紹ide

      咱們平時在網上下載文件通常都是壓縮的,壓縮會使咱們的文件空間縮小。壓縮文件咱們在網上傳輸的時間也會有所減小,帶寬資源也會減小。說到帶寬其實咱們家庭使用的帶寬和公司使用的不是同樣的,家庭使用的下載速度和上傳速度不對等,而公司的是對等的。因此公司的寬帶比較貴。若是咱們服務器上的文件常常被下載咱們就要對文件進行壓縮了(這樣咱們能夠節約不少帶寬資源)。工具

      以前咱們說過windows系統的文件後綴名能夠分類,可是在咱們linux系統裏面文件的後綴名沒有這麼重要,可是咱們爲了好區分咱們把linux系統裏面相同的文件,使用同樣後綴名。spa

6.2gzip壓縮工具code

[root@MOMOCO-02 ~]# cd /tmp/
[root@MOMOCO-02 tmp]# ls
1.1.txt
1.2.txt
1.txt
fstab
newdisk
passwd.sh
systemd-private-4a8637beb8de42fb8464053cf2d212d8-chronyd.service-qRi1F0
systemd-private-4a8637beb8de42fb8464053cf2d212d8-vgauthd.service-KXhyWb
systemd-private-4a8637beb8de42fb8464053cf2d212d8-vmtoolsd.service-xaK1rP
systemd-private-9efcc82ee01b48909302a65e60af7a1d-chronyd.service-1IixSo
systemd-private-9efcc82ee01b48909302a65e60af7a1d-vgauthd.service-7iWWfH
systemd-private-9efcc82ee01b48909302a65e60af7a1d-vmtoolsd.service-JqnO61
systemd-private-a655ede1d77c4fa6ae782f90c506592b-chronyd.service-dQVYew
systemd-private-a655ede1d77c4fa6ae782f90c506592b-vgauthd.service-E2oycH
systemd-private-a655ede1d77c4fa6ae782f90c506592b-vmtoolsd.service-YXlLvS
txt
xxx.conf
[root@MOMOCO-02 tmp]# mkdir d6z
[root@MOMOCO-02 tmp]# cd !$
cd d6z
[root@MOMOCO-02 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;【多看看這張find的使用方法】
[root@MOMOCO-02 d6z]# du -sh 1.txt 【查看文件或者目錄的大小】
240K    1.txt
[root@MOMOCO-02 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@MOMOCO-02 d6z]# du -sh 1.txt 
704K    1.txt
[root@MOMOCO-02 d6z]# cp 1.txt 2.txt
[root@MOMOCO-02 d6z]# cat 2.txt >> 1.txt 
[root@MOMOCO-02 d6z]# du -sh 1.txt 
1.2M    1.txt
[root@MOMOCO-02 d6z]# cat 2.txt >> 1.txt 
[root@MOMOCO-02 d6z]# du -sh 1.txt 
2.2M    1.txt
[root@MOMOCO-02 d6z]# cat 2.txt >> 1.txt 
[root@MOMOCO-02 d6z]# du -sh 1.txt 
2.2M    1.txt
[root@MOMOCO-02 d6z]# cat 2.txt >> 1.txt 
[root@MOMOCO-02 d6z]# du -sh 1.txt 
4.2M    1.txtblog

[root@MOMOCO-02 d6z]# wc -l 1.txt 【查看一個文件有多少行】
60770 1.txt
[root@MOMOCO-02 d6z]# gzip 1.txt 【壓縮1.txt文件】
[root@MOMOCO-02 d6z]# du -sh 1.txt 【咱們在查看文件的大小的時候顯示沒有這個文件了】
du: 沒法訪問"1.txt": 沒有那個文件或目錄
[root@MOMOCO-02 d6z]# ls 【能夠看到咱們的1.txt文件沒有了多出來的是1.txt.gz】
1.txt.gz  2.txt
[root@MOMOCO-02 d6z]# gzip -d 1.txt.gz 【-d選項會解壓縮咱們的文件】
[root@MOMOCO-02 d6z]# ls
1.txt  2.txt
[root@MOMOCO-02 d6z]# du -sh 1.txt 【壓縮以前這個文件大小是4.2M,壓縮以後咱們再解壓發現咱們文件大小變成了2.4M,這是由於咱們以前的文件他就像海綿同樣內存是有空隙的,而咱們壓縮以後再解壓就會致使咱們文件大小發生變化。】
2.4M    1.txt

[root@MOMOCO-02 d6z]# wc -l 1.txt 【咱們再次查看文件的行數是沒有發生變化的】
60770 1.txt
gzip壓縮級別

gzip壓縮是有級別的,分別從1到9個級別。壓縮級別越高cup耗費的資源越多。

1級別是最不嚴謹的(就是壓縮的文件沒有9級別的小)

9級別是最嚴謹的(就是壓縮的文件比1級別小的多)

[root@MOMOCO-02 d6z]# ls
1.txt  2.txt
[root@MOMOCO-02 d6z]# gzip -1 1.txt 【指定壓縮1級別】
[root@MOMOCO-02 d6z]# du -sh 1.txt.gz 【壓縮文件1.txt.gz大小732k】
732K    1.txt.gz
[root@MOMOCO-02 d6z]# gunzip 1.txt.gz 【這也是一個解壓縮的命令和-d選項做用同樣的】
[root@MOMOCO-02 d6z]# gzip -9 1.txt 【指定壓縮9級別】
[root@MOMOCO-02 d6z]# du -sh 1.txt.gz 【壓縮文件1.txt.gz大小616k】
616K    1.txt.gz
[root@MOMOCO-02 d6z]# gzip -d 1.txt.gz 
[root@MOMOCO-02 d6z]# gzip 1.txt 【若是咱們不指定級別默認是6級別】
[root@MOMOCO-02 d6z]# du -sh 1.txt.gz 【默認壓縮文件1.txt.gz大小620k】
620K    1.txt.gz
[root@MOMOCO-02 d6z]# file 1.txt.gz 【查看咱們壓縮文件的詳細信息】
1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Jan  5 06:59:22 2018
[root@MOMOCO-02 d6z]# zcat 1.txt.gz 【這個命令能夠查看咱們壓縮文件的內容】
[root@MOMOCO-02 d6z]# ls
1.txt.gz  2.txt
[root@MOMOCO-02 d6z]# gunzip 1.txt.gz 
[root@MOMOCO-02 d6z]# gzip -c 1.txt > /tmp/1.txt.gz【這種方法壓縮文件,能夠指定定咱們壓縮後的文件放到哪裏,並且咱們的源文件不會消失。上面的實驗壓縮咱們源文件消失只有壓縮文件。】
[root@MOMOCO-02 d6z]# ls
1.txt  2.txt
[root@MOMOCO-02 d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz

[root@MOMOCO-02 d6z]# file !$【file咱們看一下】
file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Jan  5 06:59:22 2018

[root@MOMOCO-02 d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/jieya1.txt.gz【我麼也能夠指定解壓出來的文件放到哪裏,並且原來的壓縮文件不會消失。上面的實驗咱們壓縮文件解壓後會消失。】
[root@MOMOCO-02 d6z]# du -sh 1.txt jieya1.txt.gz 
2.4M    1.txt
2.4M    jieya1.txt.gz
[root@MOMOCO-02 d6z]# wc -l 1.txt jieya1.txt.gz 
  60770 1.txt
  60770 jieya1.txt.gz
 121540 總用量

6.3bzip2壓縮工具

bzip2工具壓縮的文件比gzip工具壓縮的文件要狠,文件壓縮越狠cpu耗費的資源越多。默認級別9

[root@MOMOCO-02 d6z]# bzip2 1.txt 【壓縮命令,提示咱們沒有安裝bzip2工具】
-bash: bzip2: 未找到命令
[root@MOMOCO-02 d6z]# yum install -y bzip2
[root@MOMOCO-02 d6z]# bzip2 1.txt 【壓縮命令】
[root@MOMOCO-02 d6z]# ls
1.txt.bz2  2.txt  jieya1.txt.gz
[root@MOMOCO-02 d6z]# du -sh 1.txt.bz2 【查看咱們的使用bzip2壓縮後的文件大小】
244K    1.txt.bz2【咱們能夠看到他的壓縮很小,咱們以前使用gzip壓縮的時候的大小是620k
[root@MOMOCO-02 d6z]# bzip2 -d 1.txt.bz2 【-d選項是解壓縮的意思】
[root@MOMOCO-02 d6z]# ls
1.txt  2.txt  jieya1.txt.gz
[root@MOMOCO-02 d6z]# du -sh 1.txt 【沒有壓縮的文件大小】
2.4M    1.txt
[root@MOMOCO-02 d6z]# bzip2 1.txt 
[root@MOMOCO-02 d6z]# bunzip2 1.txt.bz2 【解壓縮文件命令,和-d選項同樣】
[root@MOMOCO-02 d6z]# ls
1.txt  2.txt  jieya1.txt.gz
[root@MOMOCO-02 d6z]# bzip2 -c 1.txt > 3.txt.bz2【保留源文件壓縮,而且指定壓縮文件的路徑】
[root@MOMOCO-02 d6z]# ls
1.txt  2.txt  3.txt.bz2  jieya1.txt.gz

[root@MOMOCO-02 d6z]# file 1.txt.bz2 【使用這個命令能夠查看咱們壓縮文件的詳細信息】
1.txt.bz2: bzip2 compressed data, block size = 900k

有的時候有的人就是把壓縮的文件後綴名給你改了這個時候你cat查看是沒有用的裏面都是二進制文件。這個時候咱們就想到用file命令查看這個文件看看他是什麼文件

[root@MOMOCO-02 d6z]# ls
1.txt.bz2  2.txt  3.txt.bz2  jieya1.txt.gz
[root@MOMOCO-02 d6z]# mv 3.txt.bz2 3.txt
[root@MOMOCO-02 d6z]# ls
1.txt.bz2  2.txt  3.txt  jieya1.txt.gz
[root@MOMOCO-02 d6z]# less 3.txt 
"3.txt" may be a binary file.  See it anyway? 
[root@MOMOCO-02 d6z]# file 3.txt 
3.txt: bzip2 compressed data, block size = 900k
[root@MOMOCO-02 d6z]# file 2.txt 
2.txt: UTF-8 Unicode text

[root@MOMOCO-02 d6z]# bzcat 3.txt.bz2 【咱們可使用這個命令查看一個壓縮文件】

6.4xz壓縮工具

xz工具壓縮的文件比bzip2工具壓縮的文件還要狠,固然文件壓縮越狠cpu耗費的資源越多。默認級別9

下面的命令就不作詳細介紹你能夠參照上面的兩個壓縮工具來理解。

[root@MOMOCO-02 d6z]# ls
1.txt  2.txt  3.txt.bz2  jieya1.txt.gz
[root@MOMOCO-02 d6z]# xz 1.txt 
[root@MOMOCO-02 d6z]# ls
1.txt.xz  2.txt  3.txt.bz2  jieya1.txt.gz
[root@MOMOCO-02 d6z]# du -sh 1.txt.xz 
56K    1.txt.xz
[root@MOMOCO-02 d6z]# unxz 1.txt.xz 
[root@MOMOCO-02 d6z]# ls
1.txt  2.txt  3.txt.bz2  jieya1.txt.gz
[root@MOMOCO-02 d6z]# du -sh 1.txt 
2.4M    1.txt
[root@MOMOCO-02 d6z]# xz -z 1.txt 
[root@MOMOCO-02 d6z]# ls
1.txt.xz  2.txt  3.txt.bz2  jieya1.txt.gz
[root@MOMOCO-02 d6z]# xz -d -c 1.txt.xz > /tmp/1.txt.xz
[root@MOMOCO-02 d6z]# xz -c /tmp/1.txt > /tmp/d6z/5.txt.xz

[root@MOMOCO-02 d6z]# ls
1.txt.xz  2.txt  3.txt.bz2  5.txt.xz  jieya1.txt.gz

[root@MOMOCO-02 d6z]# xzcat 5.txt.xz 

阿銘linux:http://v.apelearn.com

MOMCO-51CTO博客:https://blog.51cto.com/13518197

相關文章
相關標籤/搜索