壓縮及歸檔工具

常用的有這些:

compress/uncompress: .Z

gzip/gunzip: .gz

bzip2/bunzip2: .bz2

xz/unxz: .xz

zip/unzip

tar, cpio

現在分別介紹他們的用法:

1、gzip/gunzip/zcat  .gz

             

gzip [OPTION]… FILE …  默認壓縮/解壓縮完之后刪除原文件 

-d: 解壓縮,相當于gunzip

-c: 將結果輸出至標準輸出,將不會操作原文件,壓縮以后保留原文件 

-#:1-9,指定壓縮比;比例越大,壓縮后的文件越小,消耗的時間越長

-r:壓縮目錄,它會對目錄中的每一個文件都進行壓縮,并且把原文件都刪除

zcat:自動調用gunzip命令,解壓至臨時文件中,并使用zcat打開查看;不展開的前提下,查看文本文件內容; 

zcat messages.gz  

     zcat messages.gz | less 分頁看

[root@localhost ~]# cp /var/log/messages ./
[root@localhost ~]# cp /etc/rc.d/init.d/functions ./
[root@localhost ~]# ll messages functions
-rw-r--r--. 1 root root   13948 Sep 16 16:36 functions
-rw-------. 1 root root 1274157 Sep 16 16:35 messages
[root@localhost ~]# ll -h messages functions
-rw-r--r--. 1 root root  14K Sep 16 16:36 functions
-rw-------. 1 root root 1.3M Sep 16 16:35 messages
[root@localhost ~]# gzip messages
[root@localhost ~]# ll -h
total 7.8M
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-------.  1 root root  96K Sep 16 16:35 messages.gz    #只有壓縮后的文件,原文件已被刪除
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
-rw-r--r--.  1 root root 7.7M Sep 11 19:05 phpMyAdmin-4.0.10.17-all-languages.tar.gz
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#

2、bzip2/bunzip2/bzcat  .bz2

bzip2 [OPTION]… FILE … 

默認壓縮/解壓縮完之后刪除原文件;只能壓縮文件,不能壓縮目錄;

    

-k: keep, 保留原文件,不需要重定向  

-d:解壓縮

-#:1-9,壓縮比,默認為6; 壓縮比更大,效率更高

bzcat:不顯式展開的前提下查看文本文件內容;

[root@localhost ~]# bzip2 messages
[root@localhost ~]# ll -h
total 280K
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-r--r--.  1 root root  92K Sep 16 16:51 messages.2.gz
-rw-------.  1 root root  62K Sep 16 16:35 messages.bz2   #壓縮,已經有massages.bz2文件,默認壓縮比更大
-rw-r--r--.  1 root root  96K Sep 16 16:47 messages.gz
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#
[root@localhost ~]# bzip2 -d messages.bz2
[root@localhost ~]# ll -h
total 1.5M
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-------.  1 root root 1.3M Sep 16 16:35 messages   #解壓縮,默認也會刪除原文件
-rw-r--r--.  1 root root  92K Sep 16 16:51 messages.2.gz
-rw-r--r--.  1 root root  96K Sep 16 16:47 messages.gz
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#

3、xz/unxz/xzcat  .xz

xz [OPTION]… FILE …   

-k: keep, 保留原文件

-d:解壓縮

-#:1-9,壓縮比,默認為6; 壓縮比更大 

xzcat: 不顯式展開的前提下查看文本文件內容;

[root@localhost ~]# xz -k messages
[root@localhost ~]# ll -h
total 1.6M
-rw-------.  1 root root 1.5K Aug  9 23:56 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Desktop
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Documents
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Downloads
-rw-r--r--.  1 root root  14K Sep 16 16:36 functions
-rw-------.  1 root root 1.5K Aug 10 00:00 initial-setup-ks.cfg
-rw-------.  1 root root 1.3M Sep 16 16:35 messages
-rw-r--r--.  1 root root  92K Sep 16 16:51 messages.2.gz
-rw-------.  1 root root  62K Sep 16 16:35 messages.bz2
-rw-r--r--.  1 root root  96K Sep 16 16:47 messages.gz
-rw-------.  1 root root  57K Sep 16 16:35 messages.xz   #壓縮,壓縮比更大
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Music
drwxr-xr-x.  2 root root   39 Aug  9 23:55 openscap_data
drwxr-xr-x. 10 1000 1000 4.0K Aug 17 04:45 phpMyAdmin-4.0.10.17-all-languages
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Pictures
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Public
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Templates
drwxr-xr-x.  2 root root    6 Aug 10 00:01 Videos
[root@localhost ~]#

4、zip  .zip   

    要想壓縮目錄,應該把目錄打包成單個文件,再壓縮,而打包其實就是歸檔;

    zip是集歸檔、壓縮為一體的工具。

    要指明壓縮后的文件名:zip name 目錄; 不會刪除原文件

zip pam.d.zip pam.d/  #壓縮目錄
ll -h
mv pam.d pam.d.orig   #改名,因為解壓縮后的文件也會叫pam.d
unzip pam.d.zip   #展開
ll
cd pam.d
ll  #沒有文件,因此我們在歸檔時要指明哪些文件

rm -rf pam.d pam.d.zip  
zip pam.d.zip pam.d.orig/*     #*指明所有文件
ll -h    #pam.d.zip有大小了
du -sh pam.d.orig/  #可以看到原文件pam.d.orig的大小,184k

mv pam.d.orig pam.d.orig.2   #展開,不管歸檔后叫什么名,展開后還是歸檔前的那個名
ll
uzip pam.d.zip
ll  #展開仍然為pam.d.orig

5、tar   .tar   

tar [OPTION]…  用的非常多,歸檔工具

(1) 創建歸檔

tar cf /PATH/TO/SOMEFILE.tar FILE…  

(2) 查看歸檔文件中的文件列表  不打開的前提下查看文件

tar tf /PATH/TO/SOMEFILE.tar

(3) 展開歸檔

tar xf /PATH/TO/SOMEFILE.tar

tar xf /PATH/TO/SOMEFILE.tar -C /PATH/TO/DIR   默認展開在當前目錄,-C 保存到指定目錄

  結合壓縮工具實現歸檔并壓縮,創建時使用

-j: bzip2,  -z: gzip,  -J: xz

mv pam.d.org.2 pam.d 改名
tar -cf pam.d.tar pam.d/  歸檔
ll -h   可以看到pam.d.tar 為60k,不指名所有文件也能歸檔

展開到指明目錄:
mkdir /tmp/test
tar xf pam.d.tar -C /tmp/test/
ls /tmp/test   
ls /tmp/test/pam.d   #pam.d下所有文件也在
xz pam.d.tar  刪除原文件,只保留壓縮文件
ll   

tar Jxf pam.d.tar.xz   #展開歸檔 ‘既歸檔又壓縮’的文件
ll -h   #pam.d又在了,而tar不會刪除原文件,不管是歸檔、展開歸檔

tar Jtf pam.d.tar.xz  #查看歸檔前的文件列表
rm pam.d.tar.xz

tar -Jcf pam.d.tar.xz pam.d  #一次完成,既歸檔,又壓縮
ll -h

原創文章,作者:mississippi,如若轉載,請注明出處:http://www.www58058.com/47020

(0)
mississippimississippi
上一篇 2016-09-19
下一篇 2016-09-19

相關推薦

  • Linux下btrfs子卷的掛載

        對btrfs文件系統的補充:     btrfs文件手動掛載自不必多說,但若想btrfs文件系統開機自動掛載,該如何實現呢?     其實只需添加掛載選項即可,如下: UUID=c99895c8-5b14-4276-80c7-ecf…

    Linux干貨 2015-12-19
  • Linux下如何使用sendEmail來發送郵件

    1)什么是sendEmail sendEmail是一個輕量級,命令行的SMTP郵件客戶端(注意,不要跟sendmail混淆了)。如果你需要使用命令行發送郵件,那么sendEmail是非常完美的選擇:使用簡單并且功能強大,從此以后你就愛上了它。 2)安裝sendEmail [root@zabbix ~]# wget http://…

    系統運維 2016-07-29
  • grep、egrep、fgrep 正則表達式詳解

    大綱一、grep分類       –1.1基本定義       –1.2常用選項       –1.3不常用選項二、正則表達式       –2.1基本…

    Linux干貨 2015-07-01
  • Linux運維利器之ClusterShell

    Via:http://blogread.cn/it/article/4573?f=wb 如果你有若干臺數據庫服務器,突然你想知道它們當前的即時負載情況,你會怎么辦?挨個登錄上去uptime一下?感覺有點傻,寫個shell?浪費時間,直接用ClusterShell吧! ClusterShell的安裝與配置     Clu…

    Linux干貨 2015-05-12
  • DNS服務器之理論基礎

    一、什么是DNS     DNS全稱為Domain Name System,即域名系統,其作用就是將我們經常使用的“網址”解析為IP地址。     在互聯網上通信需要借助于IP地址,但人類對于數字的記憶能力遠不如文字,那么將IP地址轉換成容易記憶的文字是個好辦法,可是計算機只能識…

    Linux干貨 2015-04-29
  • Bash學習基礎知識一“命令”

    Bash 學習基礎知識 目錄 一、Shell是個啥? 二、BASH的命令     2.1 命令的語法格式     2.2 什么是命令     2.4 命令的類型     …

    Linux干貨 2015-04-03
欧美性久久久久