linux 命令詳解 十四

 十四. 文件壓縮解壓命令tar:


   1.  tar命令行選項

選項

命令描述

-c

建立壓縮檔案

-x

解壓

--delete

從壓縮包中刪除已有文件,如果該文件在包中出現多次,該操作其將全部刪除。

-t

查看壓縮包中的文件列表

-r

向壓縮歸檔文件末尾追加文件

-u

更新原壓縮包中的文件

-z

壓縮爲gzip格式,或以gzip格式解壓

-j

壓縮爲bzip2格式,或以bzip2格式解壓

-v

顯示壓縮或解壓的過程,該選項一般不適於後臺操作

-f

使用檔案名字,這個參數是最後一個參數,後面只能接檔案名。


    2.  tar使用實例:
    #
將當前目錄下所有文件壓縮打包,需要說明的是很多人都習慣將tar工具壓縮的文件的擴展名命名爲.tar
    /> tar -cvf test.tar *
    -rw-r--r--. 1 root root   183 Nov 11 08:02 users
    -rw-r--r--. 1 root root   279 Nov 11 08:45 users2

    /> cp ../*.log .                  #從上一層目錄新copy一個.log文件到當前目錄。
    /> tar -rvf test.tar *.log     #將擴展名爲.log的文件追加到test.tar包裏。
    /> tar -tvf test.tar
    -rw-r--r-- root/root        183 2011-11-11 08:02 users
    -rw-r--r-- root/root        279 2011-11-11 08:45 users2
    -rw-r--r-- root/root     48217 2011-11-11 22:16 install.log

    /> touch install.log           #使原有的文件更新一下最新修改時間
    /> tar -uvf test.tar *.log    #重新將更新後的log文件更新到test.tar
    /> tar -tvf test.tar             #從輸出結果可以看出tar包中多出一個更新後install.log文件。
    -rw-r--r-- root/root         183 2011-11-11 08:02 users
    -rw-r--r-- root/root         279 2011-11-11 08:45 users2
    -rw-r--r-- root/root     48217 2011-11-11 22:16 install.log
    -rw-r--r-- root/root     48217 2011-11-11 22:20 install.log

    /> tar --delete install.log -f test.tar #基於上面的結果,從壓縮包中刪除install.log
    -rw-r--r-- root/root       183 2011-11-11 08:02 users
    -rw-r--r-- root/root       279 2011-11-11 08:45 users2

    /> rm -f users users2      #從當前目錄將tar中的兩個文件刪除
    /> tar -xvf test.tar          #解壓
    /> ls -l users*                 #僅列出usersusers2的詳細列表信息
    -rw-r--r--. 1 root root 183 Nov 11 08:02 users
    -rw-r--r--. 1 root root 279 Nov 11 08:45 users2

    #
gzip的格式壓縮並打包,解壓時也應該以同樣的格式解壓,需要說明的是以該格式壓縮的包習慣在擴展名後加.gz
    /> tar -cvzf test.tar.gz *
    /> tar -tzvf test.tar.gz      #查看壓縮包中文件列表時也要加z選項(gzip格式)
    -rw-r--r-- root/root     48217 2011-11-11 22:50 install.log
    -rw-r--r-- root/root         183 2011-11-11 08:02 users
    -rw-r--r-- root/root         279 2011-11-11 08:45 users2

    /> rm -f users users2 install.log
    /> tar -xzvf test.tar.gz     #gzip的格式解壓
    /> ls -l *.log users*
    -rw-r--r-- root/root     48217 2011-11-11 22:50 install.log
    -rw-r--r-- root/root         183 2011-11-11 08:02 users
    -rw-r--r-- root/root         279 2011-11-11 08:45 users2

    /> rm -f test.*                #刪除當前目錄下原有的壓縮包文件
    #
bzip2的格式壓縮並打包,解壓時也應該以同樣的格式解壓,需要說明的是以該格式壓縮的包習慣在擴展名後加.bz2
    /> tar -cvjf test.tar.bz2 *
    /> tar -tjvf test.tar.bz2    #查看壓縮包中文件列表時也要加j選項(bzip2格式)
    -rw-r--r-- root/root     48217 2011-11-11 22:50 install.log
    -rw-r--r-- root/root         183 2011-11-11 08:02 users
    -rw-r--r-- root/root         279 2011-11-11 08:45 users2

    /> rm -f *.log user*
    /> tar -xjvf test.tar.bz2    #bzip2的格式解壓
    /> ls -l
    -rw-r--r--. 1 root root 48217 Nov 11 22:50 install.log
    -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
    -rw-r--r--. 1 root root     183 Nov 11 08:02 users
    -rw-r--r--. 1 root root     279 Nov 11 08:45 users2

十五. 大文件拆分命令split:

    
下面的列表中給出了該命令最爲常用的幾個命令行選項:

選項

描述

-l

指定行數,每多少分隔成一個文件,缺省值爲1000行。

-b

指定字節數,支持的單位爲:km

-C

-b參數類似,但切割時儘量維持每行的完整性

-d

生成文件的後綴爲數字,如果不指定該選項,缺省爲字母

    /> ls -l
    -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2

    /> split -b 5k test.tar.bz2     #以每文件5k的大小切割test.tar.bz2
    /> ls -l                                #查看切割後的結果,缺省情況下拆分後的文件名爲以下形式。
    -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
    -rw-r--r--. 1 root root   5120 Nov 11 23:34 xaa
    -rw-r--r--. 1 root root   5120 Nov 11 23:34 xab
    -rw-r--r--. 1 root root     290 Nov 11 23:34 xac

    /> rm -f x*                         #刪除拆分後的小文件
    /> split -d -b 5k test.tar.bz2 #-d選項以後綴爲數字的形式命名拆分後的小文件
    /> ls -l
    -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
    -rw-r--r--. 1 root root   5120 Nov 11 23:36 x00
    -rw-r--r--. 1 root root   5120 Nov 11 23:36 x01
    -rw-r--r--. 1 root root     290 Nov 11 23:36 x02

    /> wc install.log -l             #計算該文件的行數
    /> split -l 300 install.log     #300行拆分成一個小文件
    /> ls -l x*
    -rw-r--r--. 1 root root 11184 Nov 11 23:42 xaa
    -rw-r--r--. 1 root root 10805 Nov 11 23:42 xab
    -rw-r--r--. 1 root root 12340 Nov 11 23:42 xac
    -rw-r--r--. 1 root root 11783 Nov 11 23:42 xad
    -rw-r--r--. 1 root root   2105 Nov 11 23:42 xae

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章