linux解压常用命令

简介

我们在操作linux服务器的时候会用到一些解压和压缩命令 .zip .gz .bz2 .tar.gz .tar.bz2,下面我对常用解压命令进行汇总。

1.tar

tar命令参数前面加”-"与不加“-”的区别:

tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于System V风格,不加“-”属于BSD风格,所以在使用tar命令的时候它的参数加不加“-”结果是一样的,看个人的使用方式;

常用参数:

选项 介绍
-z 是否同时具有gz属性
-j 是否同时具有bz2属性
-J 是否同时具有xz属性
-x 解压缩、提取打包的内容
-t 查看压缩包内容
-c 建立一个压缩,打包文档
-C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-v 显示压缩或者打包的内容
-f 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P 保留绝对路径(大写P)

1.1.打包

示例:

  • a.将a.txtb.txt打包成一个文件:
tar -cvf test.tar a.txt b.txt
  • b.查看test.tar文件中的内容:
tar -tf test.tar
  • c.提取test.tar文件中的内容到/test目录下:
# 如果不用`-C`指定目录,默认是当前目录。
tar -xf test.tar -C /test

1.2.压缩

linux主要有三种压缩方式:

  • .gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
  • .bzip:压缩形成的文件小,但是可用性不如gzip
  • .xz:是最新的压缩方式,可以自动提供最佳的压缩率

建议的压缩的时候标明后缀:

参数 作用 命名方式
-z 用于gzip压缩方式 文件名.tar.gz
-j 用于bzip2压缩方式 文件名.tar.bz2
-J 用于xz压缩方式 文件名.tar.xz

示例:

  • a.用gzip的压缩方式将test.log文件压缩为test.tar.gz文件:
tar -zcvf test.tar.gz test.log
  • b.用bzip2的压缩方式将test.log文件压缩为test.tar.bz2文件
tar -jcvf test.tar.bz2 test.log

在压缩的过程中,我们可以发现:
压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz

1.3.解压

tar命令在解压的时候不需要指明自己压缩的方式它会自己选择跟压缩文件对应的方式去解压:

  • a.将test.tar.gz解压到当前目录
tar -xf test.tar.gz
  • b.将test.tar.bz2文件解压在/test目录下:
tar -xf test.tar.bz2 -C /test

补充

  • a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压一样,下面举一个例子:

压缩

# 不加'P'
tar -zcvf test.tar.gz /test

# 加'P'
tar -zcvPf test.tar.gz /test

解压

# 不加'P'
tar -xvf test.tar.gz -C /test

# 加'P'
tar -xvPf test.tar.gz -C /test
  • b.在使用tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的文件的目的
# 排除`test`文件夹中的`a.txt`文件
tar -cvf test.tar --exclude=a.txt test

2.zip

zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。

2.1.zip命令

基本用法:

zip [参数] [压缩包名] [压缩的目录或者文件的路径]

常用参数:

选项 介绍
-m 将文件压缩后,删除原文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩的时间
-q 安静模式,在压缩的时候不显示指令执行的过程
-r 递归压缩,将自定目录下的所有子文件以及文件一起处理
-x ”文件列表“,压缩时排除文件列表中的文件

示例:

  • a.压缩目录,将test目录压缩为名为test.zip压缩包:
# 正常压缩,不加`-q`选项,显示压缩过程
zip -r test.zip test

# 加`-q`选项,不显示压缩过程
zip -q -r test.zip test
  • b.压缩多个文件,将文件1.txt2.txt文件压缩名为test.zip的压缩包:
# 因为压缩的都是文件,可以不用加上`-r`选项
zip -q test.zip 1.txt 2.txt
  • c.压缩文件和目录,将1.txt文件和test目录压缩名为test.zip的压缩包:
zip -q -r test.zip 1.txt test
  • d.将test目录压缩为test.zip压缩包,并且排除test目录中的1.txt文件:
zip -r test.zip test -x "./test/1.txt"

2.2.unzip命令

基本用法:

unzip [参数] [压缩文件] (-d [目录]) //如果不是用括号里面的内容,则解压文件在当前工作目录

常用参数:

选项 介绍
-c 将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
-l 显示压缩文件内所包含的文件
-t 检查压缩文件是否正确
-v 执行时显示压缩文件的详细信息
-q 安静模式,执行时不显示任何信息
-d 指定文件解压后存储的目录
-x 指定不要处理压缩文件中的那些文件

示例:

  • a.将test.zip压缩包解压缩的结果打印出来:
unzip -c test.zip
  • b.查看test.zip压缩包所包含的文件:
unzip -l test.zip
  • c.检查test.zip压缩文件是否正确:
# 显示全部`ok`表示文件是正确的
unzip -t test.zip
  • d.不解压压缩文件test.zip,查看压缩包里面的内容(查看显示的文件列表还包含压缩比率):
# 使用`-v`显示的内容比使用`-l`显示的信息更加详细
unzip -v test.zip
  • e.将test.zip压缩包解压到/data目录下:
unzip -q test.zip -d /data

总结

后缀 解压命令
.tar tar –xvf test.tar
.gz gzip -d test.gz 或者gunzip test.gz
.tar.gz、.tgz tar –xzf test.gz
.bz2 bzip2 -d test.bz2或者用bunzip2.bz2
.tar.bz2 tar –xjf test.tar.bz2
.Z uncompress test.Z
.tar.Z tar –xZf test.tar.Z
.rar unrar e test.rar
.zip unzip test.zip
posted @ 2022-01-26 18:12  阿科。  阅读(3268)  评论(0编辑  收藏  举报