linux 文件 压缩 linux压缩和解压命令

今天给各位分享linux 文件 压缩的知识,其中也会对linux压缩和解压命令进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

在Linux 上压缩文件的 5 种方法 | Linux 中国

在 Linux系统中,压缩文件的方法多种多样,各有特色。本文将深入比较五个主要的压缩工具:tar、zip、gzip、bzip2和新兴的 xz。虽然它们都能显著减小文件大小,但效果和特性有所不同。

首先是 tar,尽管主要用于打包而非单独压缩,但通过附加 z压缩选项,tar可以与 gzip配合完成压缩。压缩单个文件时,tar的效率可能不如直接使用 gzip,但其在打包文件组时表现出色。

zip以简单易用著称,创建压缩文件时,原始文件会被替换。gzip和 bzip2也提供了“就地”压缩功能,即压缩后替换原始文件,而 xz则以领先的压缩效率闻名,尤其在处理大文件时表现优异,但压缩时间可能较长。

在实际应用中,压缩率是一个关键因素。对于 bigfile这样的大型随机文本文件,xz命令表现出色,压缩后文件大小仅占原始文件的 13%。此外,压缩是否替换原始文件、运行时间、文件权限以及与 Windows的兼容性也是需要考虑的因素。

解压缩文件的命令与压缩类似,且通常比压缩过程更快。要亲自体验这些工具,可以选取一个大文件进行测试,注意可能需要安装 xz命令。

总的来说,Linux上的文件压缩工具有其独特的优势和适用场景,选择哪种方法取决于你的具体需求和性能要求。希望这篇文章能帮助你做出合适的选择。

linux下如何解压文件

linux解压文件涉及命令以及例程

tar命令

tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。

语法:tar [主选项+辅选项]文件或者目录

主选项:

c创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。

r把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。

t列出档案文件的内容,查看已经备份了哪些文件。

u更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。

x从档案文件中释放文件。

辅助选项:

b该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。

f使用档案文件或设备,这个选项通常是必选的。

k保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。

m在还原文件时,把所有文件的修改时间设定为现在。

M创建多卷的档案文件,以便在几个磁盘中存放。

v详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。

w每一步都要求确认。

z用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

范例:

范例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar

[root@linux~]# tar-cvf/tmp/etc.tar/etc<==仅打包,不压缩!

[root@linux~]# tar-zcvf/tmp/etc.tar.gz/etc<==打包后,以 gzip压缩

[root@linux~]# tar-jcvf/tmp/etc.tar.bz2/etc<==打包后,以 bzip2压缩

#特别注意,在参数 f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识。

#如果加 z参数,则以.tar.gz或.tgz来代表 gzip压缩过的 tar file~

#如果加 j参数,则以.tar.bz2来作为附档名啊~

#上述指令在执行的时候,会显示一个警告讯息:

#『tar: Removing leading `/" from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述/tmp/etc.tar.gz文件内有哪些文件?

[root@linux~]# tar-ztvf/tmp/etc.tar.gz

#由於我们使用 gzip压缩,所以要查阅该 tar file内的文件时,

#就得要加上 z这个参数了!这很重要的!

范例三:将/tmp/etc.tar.gz文件解压缩在/usr/local/src底下

[root@linux~]# cd/usr/local/src

[root@linux src]# tar-zxvf/tmp/etc.tar.gz

#在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,

#我先将工作目录变换到/usr/local/src底下,并且解开/tmp/etc.tar.gz,

#则解开的目录会在/usr/local/src/etc呢!另外,如果您进入/usr/local/src/etc

#则会发现,该目录下的文件属性与/etc/可能会有所不同喔!

范例四:在/tmp底下,我只想要将/tmp/etc.tar.gz内的 etc/passwd解开而已

[root@linux~]# cd/tmp

[root@linux tmp]# tar-zxvf/tmp/etc.tar.gz etc/passwd

#我可以透过 tar-ztvf来查阅 tarfile内的文件名称,如果单只要一个文件,

#就可以透过这个方式来下达!注意到! etc.tar.gz内的根目录/是被拿掉了!

范例五:将/etc/内的所有文件备份下来,并且保存其权限!

[root@linux~]# tar-zxvpf/tmp/etc.tar.gz/etc

#这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在/home当中,比 2005/06/01新的文件才备份

[root@linux~]# tar-N"2005/06/01"-zcvf home.tar.gz/home

范例七:我要备份/home,/etc,但不要/home/dmtsai

[root@linux~]# tar--exclude/home/dmtsai-zcvf myfile.tar.gz/home/*/etc

范例八:将/etc/打包后直接解开在/tmp底下,而不产生文件!

[root@linux~]# cd/tmp

[root@linux tmp]# tar-cvf-/etc| tar-xvf-

#这个动作有点像是 cp-r/etc/tmp啦~依旧是有其有用途的!

#要注意的地方在於输出档变成-而输入档也变成-,又有一个|存在~

#这分别代表 standard output, standard input与管线命令啦!

#这部分我们会在 Bash shell时,再次提到这个指令跟大家再解释啰!

.tar.gz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

大致总结了一下linux下各种格式的压缩包的压缩、解压方法。但是部分方法我没有用到,也就不全,希望大家帮我补充,我将随时修改完善,谢谢!

.tar

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

---------------------------------------------

.gz

解压1:gunzip FileName.gz

解压2:gzip-d FileName.gz

压缩:gzip FileName

.tar.gz和.tgz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

---------------------------------------------

.bz2

解压1:bzip2-d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2-z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

---------------------------------------------

.bz

解压1:bzip2-d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz

压缩:未知

---------------------------------------------

.Z

解压:uncompress FileName.Z

压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

---------------------------------------------

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

---------------------------------------------

.rar

解压:rar x FileName.rar

压缩:rar a FileName.rar DirName

rar请到:下载!

解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

[root@www2 tmp]# cp rar_static/usr/bin/rar

---------------------------------------------

.lha

解压:lha-e FileName.lha

压缩:lha-a FileName.lha FileName

lha请到:下载!

>解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

[root@www2 tmp]# cp lha/usr/bin/

---------------------------------------------

.rpm

解包:rpm2cpio FileName.rpm| cpio-div

---------------------------------------------

.deb

解包:ar p FileName.deb data.tar.gz| tar zxf-

---------------------------------------------

.tar.tgz.tar.gz.tar.Z.tar.bz.tar.bz2.zip.cpio.rpm

.deb.slp.arj.rar.ace.lha.lzh.lzx.lzs.arc.sda.sfx.lnx

.zoo.cab.kar.cpt.pit.sit.sea

解压:sEx x FileName.*

压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!

sEx请到: 下载!

解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

[root@www2 tmp]# cp sEx/usr/bin/

参考文献:Linux文件压缩工具指南

(其实看帮助是最好的方法,一般各个命令都可以用“--help”参数得到常用使用方法!)

用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩。下面分别介绍备份与压缩的命令。

tar命令

tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。 tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。

语法:tar[主选项+辅选项]文件或者目录

使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

主选项:

c创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。

r把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。

t列出档案文件的内容,查看已经备份了哪些文件。

u更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。

x从档案文件中释放文件。

辅助选项:

b该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。

f使用档案文件或设备,这个选项通常是必选的。

k保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。

m在还原文件时,把所有文件的修改时间设定为现在。

M创建多卷的档案文件,以便在几个磁盘中存放。

v详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。

w每一步都要求确认。

z用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

例1:把/home目录下包括它的子目录全部做备份文件,备份文件名为usr.tar。

$ tar cvf usr.tar/home

例2:把/home目录下包括它的子目录全部做备份文件,并进行压缩,备份文件名为usr.tar.gz。

$ tar czvf usr.tar.gz/home

例3:把usr.tar.gz这个备份文件还原并解压缩。

$ tar xzvf usr.tar.gz

例4:查看usr.tar备份文件的内容,并以分屏方式显示在显示器上。

$ tar tvf usr.tar| more

要将文件备份到一个特定的设备,只需把设备名作为备份文件名。

例5:用户在/dev/fd0设备的软盘中创建一个备份文件,并将/home目录中所有的文件都拷贝到备份文件中。

$ tar cf/dev/fd0/home

要恢复设备磁盘中的文件,可使用xf选项:

$ tar xf/dev/fd0

如果用户备份的文件大小超过设备可用的存贮空间,如软盘,您可以创建一个多卷的tar备份文件。M选项指示tar命令提示您使用一个新的存贮设备,当使用M选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒您再放入一张新的软盘。这样您就可以把tar档案存入几张磁盘中。

$ tar cMf/dev/fd0/home

要恢复几张盘中的档案,只要将第一张放入软驱,然后输入有x和M选项的tar命令。在必要时您会被提醒放入另外一张软盘。

$ tar xMf/dev/fd0

gzip命令

减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

语法:gzip[选项]压缩(解压缩)的文件名

各选项的含义:

-c将输出写到标准输出上,并保留原有文件。

-d将压缩文件解压。

-l对每个压缩文件,显示下列字段:

压缩文件的大小

未压缩文件的大小

压缩比

未压缩文件的名字

-r递归式地查找指定目录并压缩其中的所有文件或者是解压缩。

-t测试,检查压缩文件是否完整。

-v对每一个压缩和解压的文件,显示文件名和压缩比。

-num用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。

假设一个目录/home下有文件mm.txt、sort.txt、xx.com。

例1:把/home目录下的每个文件压缩成.gz文件。

$ cd/home

$ gzip*

$ ls

m.txt.gz sort.txt.gz xx.com.gz

例2:把例1中每个压缩的文件解压,并列出详细的信息。

$ gzip-dv*

mm.txt.gz 43.1%-----replaced with mm.txt

sort.txt.gz 43.1%-----replaced with sort.txt

xx.com.gz 43.1%-----replaced with xx.com

$ ls

mm.txt sort.txt xx.com

例3:详细显示例1中每个压缩的文件的信息,并不解压。

$ gzip-l*

compressed uncompr. ratio uncompressed_name

277 445 43.1% mm.txt

278 445 43.1% sort.txt

277 445 43.1% xx.com

$ ls

mm.txt.gz sort.txt.gz xx.com.gz

例4:压缩一个tar备份文件,如usr.tar,此时压缩文件的扩展名为.tar.gz

$ gzip usr.tar

$ ls

usr.tar.gz

unzip命令

用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。

语法:unzip[选项]压缩文件名.zip

各选项的含义分别为:

-x文件列表解压缩文件,但不包括指定的file文件。

-v查看压缩文件目录,但不解压。

-t测试文件有无损坏,但不解压。

-d目录把压缩文件解到指定目录下。

-z只显示压缩文件的注解。

-n不覆盖已经存在的文件。

-o覆盖已存在的文件且不要求用户确认。

-j不重建文档的目录结构,把所有文件解压到同一目录下。

例1:将压缩文件text.zip在当前目录下解压缩。

$ unzip text.zip

例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

$ unzip-n text.zip-d/tmp

例3:查看压缩文件目录,但不解压。

$ unzip-v text.zip

zgrep命令

这个命令的功能是在压缩文件中寻找匹配的正则表达式,用法和grep命令一样,只不过操作的对象是压缩文件。如果用户想看看在某个压缩文件中有没有某一句话,便可用zgrep命令

01-.tar格式

解包:[*******]$ tar xvf FileName.tar

打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)

02-.gz格式

解压1:[*******]$ gunzip FileName.gz

解压2:[*******]$ gzip-d FileName.gz

压缩:[*******]$ gzip FileName

03-.tar.gz格式

解压:[*******]$ tar zxvf FileName.tar.gz

压缩:[*******]$ tar zcvf FileName.tar.gz DirName

04-.bz2格式

解压1:[*******]$ bzip2-d FileName.bz2

解压2:[*******]$ bunzip2 FileName.bz2

压缩: [*******]$ bzip2-z FileName

05-.tar.bz2格式

解压:[*******]$ tar jxvf FileName.tar.bz2

压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName

06-.bz格式

解压1:[*******]$ bzip2-d FileName.bz

解压2:[*******]$ bunzip2 FileName.bz

07-.tar.bz格式

解压:[*******]$ tar jxvf FileName.tar.bz

08-.Z格式

解压:[*******]$ uncompress FileName.Z

压缩:[*******]$ compress FileName

09-.tar.Z格式

解压:[*******]$ tar Zxvf FileName.tar.Z

压缩:[*******]$ tar Zcvf FileName.tar.Z DirName

10-.tgz格式

解压:[*******]$ tar zxvf FileName.tgz

11-.tar.tgz格式

解压:[*******]$ tar zxvf FileName.tar.tgz

压缩:[*******]$ tar zcvf FileName.tar.tgz FileName

12-.zip格式

解压:[*******]$ unzip FileName.zip

压缩:[*******]$ zip FileName.zip DirName

13-.lha格式

解压:[*******]$ lha-e FileName.lha

压缩:[*******]$ lha-a FileName.lha FileName

14-.rar格式

解压:[*******]$ rar a FileName.rar

压缩:[*******]$ rar e FileName.rar

rar请到:下载!

解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量

指定的目录也行):[*******]$ cp rar_static/usr/bin/rar

linux中如何压缩文件

Linux中压缩文件的常用方法有使用tar命令和使用gzip或zip工具。

详细解释如下:

1.使用tar命令压缩文件

tar命令是Linux中常用的文件打包工具,它可以将多个文件或目录合并成一个文件,并可以进行压缩。基本语法为:

css

tar-czvf压缩文件名.tar.gz压缩的文件或目录

其中,c表示创建新的压缩文件,z表示通过gzip进行压缩,v表示显示详细信息,f表示指定文件名。例如,要压缩一个名为“doc”的目录,可以执行:

bash

tar-czvf doc.tar.gz doc/

2.使用gzip压缩文件

gzip是一个常用的文件压缩工具,它可以对单个文件进行压缩。基本语法为:

css

gzip文件名

执行此命令后,原文件会被压缩成一个以“.gz”为后缀的压缩文件。例如,要压缩一个名为“file.txt”的文件,可以执行:

bash

gzip file.txt

3.使用zip工具压缩文件

zip是另一个常用的文件压缩工具,它支持多种压缩格式,并可以创建自解压的压缩文件。基本语法为:

css

zip压缩文件名.zip文件或目录

例如,要压缩一个名为“doc”的目录,可以执行:

bash

zip doc.zip doc/

需要注意的是,使用zip命令压缩的文件不会像gzip那样直接替换原文件,而是创建一个新的压缩文件。同时,如果要解压这些压缩文件,可以使用tar命令配合相应的解压选项进行解压操作。这些命令都简单易用,对于Linux初学者来说是非常实用的工具。

阅读剩余
THE END