Linux解压缩

tar

tar是linux中最常用的解压缩命令。tar命令可用于处理后缀名为tar,tar.gz,tgz,.tar.Z,tar.bz2的文件。

-c 建立新的压缩文件
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-v 显示操作过程
-k 保留源有文件不覆盖
-C 切换到指定目录
-f 指定压缩文件

--delete            删除包中文件
--strip-components  去除目录
--add-file          向包中添加文件

压缩

归档tar包,不压缩

tar -cvf test.tar test1.log test2.log #归档多个文件
tar -cvf test.tar test/*  #归档test目录下所有文件
tar -cvf test.tar *.log  #归档所有以.log结尾的文件 

由于这种方式不会进行压缩,仅做了归档,因此速度极快,同时占用空间也较大。

归档并压缩为tar.gz或tar.bz2

这种方式打包对文件进行了压缩:

tar -zcvf test.tar.gz file1 file2 #打包,并以gzip压缩
tar -jcvf test.tar.bz2 file1 file2 #打包,并以bzip2压缩

查看压缩包中的文件

如果不想解压,只是想查看压缩包中的文件内容,可以使用-t参数:

tar -tvf test.tar #可查看test包中有哪些文件

打包后删除源文件

有时候再打包后可能需要删除源文件,但一个个删除显得麻烦,我们可以使用--remove-files 选项:

tar -zcvf test.tar.gz test.log --remove-files 

打包除指定目录或文件以外的文件

对于某些目录下的文件,可能只需要打包部分文件,因此可以使用--exclude选项排除一些不需要打包的文件:

tar -zcvf test.tar.gz --exclude=test/*.log test/* #打包test目录下所有文件,排除以.log结尾的文件

这里用到了--exclude选项,支持通配符和正则表达式,因此也非常强大。

向压缩包中更新文件

例如,压缩包中已经打入了test以及其他文件,现在你只想更新压缩包中的test文件,那么你可以使用--add-file选项:

tar -tf test.tar --add-file=test #只针对tar包

向tar包中增加文件

向tar包中增加文件可使用-r参数:

tar -rf test.tar testfile #在test.tar包中增加文件,只针对tar包

删除压缩包中的文件

在不解压的情况下,可使用--delete选项删除包中的文件:

tar --delete -f test.tar  test1 #从test.tar中删除test1文件

解压

解压tar.gz和tar包到当前目录

tar -xvf test.tar.gz
tar -xvf test.tar 

解压到指定目录

tar -xvf test.tar.gz -C dir
tar -xvf test.tar -C dir

解压包中指定的文件

例如test.tar.gz包中文件情况如下:

1.txt
log/
log/1.log
log/2.log
log/2.log
log/4.log
log/5.log

如果我们只需要解压出log目录下的1.log,只需要执行下面的命令:

tar -xvf test.tar.gz log/1.log
tar -xvf test.tar.gz log/1.log -C test #将1.log解压到test目录

解压时去掉目录结构

压缩包中的文件可能存在多级目录,常规方式解压出来后,对应目录也会存在。如果只想要压缩包的文件,可以去掉目录结构(注意:同一文件夹下文件名不能重):

tar -xvf test.tar.gz --strip-components=1 #去掉一层目录

解压时不覆盖原文件

当前目录可能已经存在包中的文件,如果不想解压出来的文件覆盖当前已存在的文件,可使用-k参数(会抛出错误信息):

tar -xvkf test.tar.gz

特别提醒

前面所提到的解压或者压缩带的f参数需要放在最后,因为它指定了压缩包名字,否则会出现解压或压缩失败。

zip/unzip

zip和unzip命令主要用于处理zip包。

压缩

涉及参数说明:

-d 从压缩文件内删除指定的文件。
-f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
- <压缩效率> 压缩效率是一个介于1-9的数值。

压缩文件

zip -r test.zip test/ #打包test目录下的文件
zip -rj test.zip test/ #打包test目录下文件,且压缩包不带test目录

指定压缩率打包文件

zip -r8 test.zip test/* #数值(1-9)越大,压缩率越高,耗时越长

打包符号链接文件

前面的命令只能打包普通文件,如果想要打包符号链接文件,则需要使用参数-y:

zip  -ry test.zip test

向压缩包中增加或更新文件

有时候需要向压缩包中增加文件,但又不想重新解压打包,可以使用参数-u:

zip -u test.zip test2 #向test.zip 包中增加test2文件

压缩时加密

压缩时如果需要对压缩包进行加密,可使用-P参数:

zip -r test.zip test1 test -P 66666 #使用密码66666加密

删除压缩包的特定文件

zip -d test.zip test  #删除test.zip包中的test文件

解压

涉及参数说明:

-l 显示压缩文件内所包含的文件
-j 只保存文件名称及其内容,而不存放任何目录名称。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该
-v 显示指令执行过程或显示版本信息。
-d 指定解压目录,目录不存在会创建

查看压缩包中的文件信息

unzip -l test.zip #可以看到压缩包中的文件名,日期等信息
unzip -v test.zip #查看更多信息,例如crc校验信息等

解压压缩包

unzip -o test.zip -d dir #讲test.zip解压到dir目录

解压包中指定的文件

如果不知道需要解压的文件名,可先查看包中的文件,然后使用下面的方法:

unzip -o test.zip "1.log" -d dir #解压包中的1.log文件到dir目录
unzip -o tet.zip "*.log" -d dir  #解压包中所有的log文件

解压时去掉目录结构

压缩包中有多层目录结构,普通解压仍然会保留目录结构,如果只想要压缩包中的文件,可以使用-j参数:

zip -oj test.zip -d ./temp  

解压jar包

jar包是java归档包,但同样可用unzip解压查看里面的文件:

unzip -o java.jar -d dir

gzip

涉及参数说明:

-k 保留源文件
-d 解开压缩文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-v 显示指令执行过程

tar命令带有-z参数,并且打包成tar.gz文件时,便调用gzip进行了压缩。gzip对文本的压缩率约有60%~70%,压缩包文件常以gz为后缀。使用-k参数保留源文件:

gzip -k ./* #当前目录下所有文件进行压缩,每个文件一个gz包
gzip -rkv ./* 递归压缩

解压也很简单:

gzip -dv test.gz 

bzip2

tar命令使用-j参数将文件打包为tar.bz2时,便调用了bzip2进行压缩。bzip2压缩或解压后,会将源文件删除。如果需要保留源文件,可使用-k参数:

bzip2 -zk test  #压缩test文件
bzip2 -dk test.bz2  #解压

rar/unrar

rar和unrar命令并非linux发行版自带命令,需要另外安装。常见用法如下:

rar a test.tar test  #将test文件压缩为test.tar
rar e test.rar       #解压test.tar
unrar x test.rar     #解压test.tar

压缩率比较

压缩率一般来说:

tar.bz2>tar.gz>zip>tar

压缩率越高,压缩以及解压的时间也就越长。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux 解压缩命令包括: 1. tar 命令:用于打包和包文件,常用的选项包括 -x(包)、-c(打包)、-v(显示详细信息)、-f(指定文件名)等。 2. gzip 命令:用于压缩和解压缩文件,常用的选项包括 -d(解压缩)、-c(输出到标准输出)、-v(显示详细信息)等。 3. bzip2 命令:用于压缩和解压缩文件,常用的选项包括 -d(解压缩)、-c(输出到标准输出)、-v(显示详细信息)等。 4. unzip 命令:用于解压缩 ZIP 格式的文件,常用的选项包括 -d(指定解压缩目录)、-l(列出压缩文件中的文件列表)、-v(显示详细信息)等。 5. unrar 命令:用于解压缩 RAR 格式的文件,常用的选项包括 -x(解压缩)、-e(解压缩到指定目录)、-v(显示详细信息)等。 以上是常用的 Linux 解压缩命令,可以根据需要选择使用。 ### 回答2: Linux 解压缩命令是指通过命令行的方式将压缩文件压成原始文件的一种操作方法。在 Linux 系统中,有多种不同的压缩格式,如 tar、gzip、zip 等常见的压缩格式,因此也有多种不同的解压缩命令。以下是常见的几种解压缩命令及其用法: 1. tar 解压缩命令 tar 命令可以将多个文件或目录打包成一个文件,并可选择压缩格式,如 gzip、bzip2 等。解压缩时,需要根据文件后缀名选择相应的选项,如 .tar、.tar.gz、.tar.bz2 等。具体命令如下: 压 tar 文件: tar -xvf file.tar 压 tar.gz 文件: tar -zxvf file.tar.gz 压 tar.bz2 文件: tar -jxvf file.tar.bz2 2. gzip 解压缩命令 gzip 是一种常见的压缩格式,可以将文件压缩成 .gz 文件。解压缩时,直接使用 gzip 命令即可。具体命令如下: 解压缩 gzip 文件: gzip -d file.gz 3. bzip2 解压缩命令 bzip2 是一种比 gzip 更高效的压缩格式,可以将文件压缩成 .bz2 文件。解压缩时,直接使用 bzip2 命令即可。具体命令如下: 解压缩 bzip2 文件: bzip2 -d file.bz2 4. zip 解压缩命令 zip 是一种常见的跨平台压缩格式,可以将多个文件或目录压缩成一个 .zip 文件。解压缩时,直接使用 unzip 命令即可。具体命令如下: 解压缩 zip 文件: unzip file.zip 以上是常用的几种 Linux 解压缩命令及其用法,可以根据自己的需要选择相应的命令。需要注意的是,在解压缩时需要保证文件路径和权限的正确性,否则可能会出现压失败的情况。 ### 回答3: Linux解压缩命令是操作系统的重要组成部分。Linux系统支持各种压缩和解压缩格式,如tar,gz,bz2,xz等。在Linux系统中,有许多命令用于压缩和解压缩文件和目录,这些命令可以使用控制台或终端窗口运行。下面介绍常用的解压缩命令: 1. tar命令。tar命令可以将多个文件和目录打包成一个文件,或将已经打好包的文件进行包。 压文件命令: tar -zxvf filename.tar.gz 其中-z表示解压缩gz格式的文件,-x表示开文件,-v表示显示包文件的详细信息,-f表示指定待包的文件名。 压缩文件命令: tar -zcvf filename.tar.gz dirname/ filename ... 其中-c表示创建文件,-z表示压缩成gz格式,-v表示显示压缩文件的详细信息,-f表示指定压缩文件的文件名,dirname/ 表示将某个目录文件夹下的所有文件压缩成一份文件,filename ... 表示压缩若干个指定的文件。 2. unzip命令。unzip命令专用于解压缩zip格式的文件。 压文件命令: unzip filename.zip 其中filename.zip表示需要压的zip格式文件名。 3. gunzip命令。gunzip命令专门用于解压缩gz格式的文件。 压文件命令: gunzip filename.gz 其中filename.gz表示需要解压缩的gz格式文件名。 4. bzip2和bunzip2命令。bzip2和bunzip2命令可用于压缩和解压缩bz2格式的文件。 压文件命令: bunzip2 filename.bz2 其中filename.bz2表示需要解压缩的bz2格式的文件。 压缩文件命令: bzip2 filename 其中filename表示需要压缩的文件名。 5. xz和unxz命令。xz和unxz命令可用于压缩和解压缩xz格式的文件。 压文件命令: unxz filename.xz 其中filename.xz表示需要解压缩的xz格式文件名。 压缩文件命令: xz filename 其中filename表示需要压缩的文件名。 以上是Linux解压缩命令的用法。在使用这些命令时需要注意一些细节,如指定正确的压缩格式和文件名、压缩和解压缩的时候需要区分文件名和目录路径等。 总的来说,熟练掌握这些命令可以让我们更加轻松地在Linux系统中处理压缩和解压缩的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值