十四. 文件壓縮解壓命令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* #僅列出users和users2的詳細列表信息
-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 |
指定字節數,支持的單位爲:k和m |
-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