tar打包工具
tar是一個打包工具,可以把目錄打包成一個文件,它把所有文件整合成一個大文件,方便復制或者移動。
tar [-zjxcvfpP] filename tar
-z:表示同時用gzip壓縮
-j:表示同時用bzip2壓縮
-J:表示同時用xz壓縮
-x:表示解包或者解壓縮
-t:表示查看tar包里的文件
-c:表示建立一個tar包或者壓縮文件包
-v:表示可視化
-f:后面跟文件名,-f filename,表示壓縮后的文件名filename,或者解壓文件filename。如果是多個參數組合的情況下,-f參數寫到最后面
-p:表示使用原文件的屬性,壓縮前什么屬性壓縮后還什么屬性
-P:表示可以使用絕對路徑
--exclude filename:表示在打包或壓縮時,不要將filename文件包括在內
第一步在test目錄下建立test111目錄,然后在test111目錄下建立2.txt文件,並將nihao寫到2.txt。拷貝1.txt到test111目錄下。接着,用tar命令把test111.tar(-f參數后緊跟打包后的文件名,然后再跟需要打包的目錄或文件)。tar命令並不會使原文件消失。
[root@lizhipeng01 test]# rm -f test111.tar
[root@lizhipeng01 test]# ls
1.txt 2.txt 3.txt test111
[root@lizhipeng01 test]# tar -cf test.tar test111 1.txt
[root@lizhipeng01 test]# ls
1.txt 2.txt 3.txt test111 test.tar
先刪除原來的test111目錄,然后解包test.tar
[root@lizhipeng01 test]# rm -rf test111
[root@lizhipeng01 test]# ls
1.txt 2.txt 3.txt test.tar
[root@lizhipeng01 test]# tar -xvf test.tar
test111/
test111/2.txt
test111/1.txt
1.txt
--exclude選項
[root@lizhipeng01 test]# ls
1.txt test.tar
[root@lizhipeng01 test]# tar -xvf test.tar
test111/
test111/2.txt
test111/1.txt
1.txt
[root@lizhipeng01 test]# tar -cvf test111.tar --exclude 1.txt test111
test111/
test111/2.txt
test111.tar放到了--exclude選項前面。該選項除了排除文件,也可以排除目錄
[root@lizhipeng01 test]# mkdir test111/test222
[root@lizhipeng01 test]# tar -cvf test111.tar --exclude test222 test111
test111/
test111/2.txt
test111/1.txt
打包的同時使用gzip壓縮
tar命令支持打包時直接壓縮,支持gzip壓縮,bzip2壓縮和xz壓縮
[root@lizhipeng01 test]# tar -czvf test111.tar.gz test111
test111/
test111/2.txt
test111/1.txt
test111/test222/
[root@lizhipeng01 test]# ls
1.txt test111 test111.tar test111.tar.gz test.tar
-tf選項,可以查看包或者壓縮包的文件列表
[root@lizhipeng01 test]# tar -tf test111.tar.gz
test111/
test111/2.txt
test111/1.txt
test111/test222/
[root@lizhipeng01 test]# tar -tf test.tar
test111/
test111/2.txt
test111/1.txt
1.txt
-zxvf選項,可以解壓.tar.gz格式的壓縮包
[root@lizhipeng01 test]# rm -rf test111
[root@lizhipeng01 test]# ls
1.txt test111.tar test111.tar.gz test.tar
[root@lizhipeng01 test]# tar -zxvf test111.tar.gz
test111/
test111/2.txt
test111/1.txt
test111/test222/
[root@lizhipeng01 test]# ls
1.txt test111 test111.tar test111.tar.gz test.tar
打包的同時使用bzip2壓縮
[root@lizhipeng01 test]# tar -cjvf test111.tar.bz2 test111
test111/
test111/2.txt
test111/1.txt
test111/test222/
[root@lizhipeng01 test]# ls
1.txt test111 test111.tar test111.tar.bz2 test111.tar.gz test.tar
使用-tf選項來查看壓縮包的文件列表
[root@lizhipeng01 test]# tar -tf test111.tar.bz2
test111/
test111/2.txt
test111/1.txt
test111/test222/
使用-jxvf選項來解壓.tar.bz2格式的壓縮包
[root@lizhipeng01 test]# tar -jxvf test111.tar.bz2
test111/
test111/2.txt
test111/1.txt
test111/test222/
使用zip壓縮
[root@lizhipeng01 test]# zip 1.txt.zip 1.txt
-bash: zip: 未找到命令
[root@lizhipeng01 test]# yum install -y zip
[root@lizhipeng01 test]# zip 1.txt.zip 1.txt
adding: 1.txt (deflated 64%)
[root@lizhipeng01 test]# zip test111.zip test111/*
adding: test111/1.txt (deflated 64%)
adding: test111/2.txt (stored 0%)
adding: test111/test222/ (stored 0%)
當目錄下還有二級目錄甚至甚至更多目錄時,zip命令僅僅是把二級目錄本身壓縮。如果想要一並壓縮二級目錄下的文件,必須加上-r選項
[root@lizhipeng01 test]# zip -r test111.zip test111/
updating: test111/1.txt (deflated 64%)
updating: test111/2.txt (stored 0%)
updating: test111/test222/ (stored 0%)
updating: test111/ (stored 0%)
解壓縮zip,unzip命令
[root@lizhipeng01 test]# unzip 1.txt.zip
-bash: unzip: 未找到命令
[root@lizhipeng01 test]# yum install -y unzip