一、tar命令

tar命令可以为linux的文件和目录创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

#常用命令选项
-c        #打包
-x        #解包解压缩
-t        #查看
-v        #显示详细信息
--exclude        #排除
-C        #指定目录

#3种压缩格式,压缩率从低到高
#一般选用bzib2足已,xz压缩率高但是压缩速度偏慢
-z    gzip
-j    bzib2
-J    xz

例子:

tar -cvf glibc.tar *      #打包当前目录(注意不会打包隐藏文件如.ssh)

#将当前目录所有打包为glibc.tar(过滤掉dir目录,扩展名为png,jpg的文件)
tar -cvf glibc.tar * --exclude dir --exclude '*.png' --exclude '*.jpg'

tar -zcvf glibc.tar.gz glibc a.txt                  #打包并以gzip压缩glibc,a.txt
tar -jcvf glibc.tar.bz2  glibc a.txt                 #打包并以bzib2压缩glibc,a.txt
tar -Jcvf glibc.tar.xz  glibc b.txt                  #打包并以xz压缩glibc,a.txt

#解包--解压缩到/root目录
tar  -zxvf  glibc.tar.gz  -C  /root                #gzip
tar  -jxvf  glibc.tar.bz2  -C  /root            #bzib2
tar  -Jxvf  glibc.tar.xz  -C  /root                 #xz


#查看包内容
tar  -tvf glibc.tar.bz2

进阶:

#只查看第一层文件目录
tar  --exclude="*/*"  -tvf glibc.tar.bz2

#只打包隐藏文件(文件名第一个是.第二个是非.)
tar -cvf /tmp/aaa.tar .[!.]*

#打包全部(包含隐藏文件)
#ls -A不会列出. ..两个目录
tar -cvf /tmp/bbb.tar `ls -A`

二、zip命令

zip命令为打包压缩命令,一般为了更windows交互才会用的,不涉及windows推荐使用tar配合gzip,bzip2,xz。

#常用命令选项
-d       #从压缩文件内删除指定的文件。
-m       #把文件移到压缩文件中。
-0-9     #压缩比
-r       #递归处理,所有文件和子目录一并处理。
-x<范本样式>       #压缩时排除符合条件的文件。
-c       #交互为每一个文件设置注释
-z       #交互多行注释,英文句话.来表示结束
-e       #交互设置密码
-P       #直接设置密码

例子:

$ zip test.zip test.txt      #添加压缩文件
$ zip test.zip test1.txt      #移动文件到压缩包
$ zip -d test.zip test.txt    #删除test.txt

$ zip -r test.zip ./*            #压缩当前全部文件到test.zip
$ zip test2.zip test2/*       #打包目录
$ zip test3.zip tests/* -x tests/ln.log      #压缩目录,除了tests/ln.log

$ zip -r test.zip ./* -P 123      #设置密码(明文设置密码不太安全)
$ zip -r test.zip ./* -e           #交互设置密码(安全)

#设置压缩比
#-0不压缩,-9最高压缩,默认为-6
$ zip test.zip test.txt -6

三、unzip命令

unzip命令可以查看解压缩zip文件。

#常用命令选项
-d     #指定目录
-n     #解压时不覆盖
-o     #不询问直接覆盖
-l      #显示压缩文件内所包含的文件。
-v     #显示压缩文件内所包含的文件。
-x     #指定不要处理哪些文件。
-P      #解压缩密码

例子:

#解压到当前目录并直接覆盖
$ unzip -o test1.zip
#指定解压目录
$ unzip test1.zip -d /tmp/
#解压特定文件
$ unzip test1.zip inc abc
#查看zip包里所有文件
$ unzip -l test.zip
#只查看zip包里第1级文件或目录
$ unzip -l test.zip -x '*/*/*'

四、P7ZIP命令

7-Zip 是一种高压缩比存档格式 7z 的管理器,不过用于 Win 平台。如果是 Linux 用户,则可以使用 P7ZIP来代替。

  • P7ZIP 的安装 在 Debian/Ubuntu 系统,可通过 sudo apt-get install p7zip 进行安装。
  • P7ZIP 的使用
创建压缩包,此命令将目录中的所有文件压缩到 test.7z 中。
# 7za a -t7z test.7z *
解开压缩包,此命令用于将 test.7z 中的文件提取出来。可使用 -t 来指明压缩格式。
# 7za X test.7z
更多信息:7za –help。