Linux系统常见的压缩命令和打包命令(gzip,zcat,bzip2,bzcat,xz,xzcat,zip,unzip,tar)

这篇具有很好参考价值的文章主要介绍了Linux系统常见的压缩命令和打包命令(gzip,zcat,bzip2,bzcat,xz,xzcat,zip,unzip,tar)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux系统常见的压缩命令和打包命令

在Linux的环境中,压缩文件的扩展名大多是: tar、tar.gz、*tgz、*gz、 *.Z 、 *.bz2、 *.xz。

这是因为Linux支持的压缩命令非常多,且不同的命令所用的压缩技术并不相同,彼此之间可能就无法互通压缩/解压缩文件。所以,当你要下载某个压缩文件时,自然就需要知道该文件是由哪中压缩命令所制作出来的,好用来对照着解压缩,下面我们就列出了几个常见的压缩文件扩展名

*.Z         compress程序压缩的文件
*.zip       zip程序压缩的文件
*.gz        gzip程序压缩的文件
*.bz2       bzip2程序压缩的文件
*xz         xz程序压缩的文件
*.tar       tar程序打包的文件,并没有压缩过
*.tar.gz    tar程序打包的文件,并且经过gzip的压缩
*.tar.bz2   tar程序打包的文件,并且经过bzip2的压缩
*.tar.xz    tar程序打包的文件,并且经过xz的压缩

下面就介绍一下Linux基本的压缩命令

gzip

gzip可以说是应用最广泛的压缩命令了,目前gzip可以解开compress、zip与gzip等软件所压缩的文件,至于gzip所建立的压缩文件为*.gz,让我们来看看这个命令的语法

gzip  [选项]  文件名

选项参数

-c      把压缩文件的数据输入到屏幕上
-d      解压缩文件
-t      可以校验压缩文件的一致性,看看文件是否有误
-v      可以显示源文件/压缩文件的等比信息
-1      压缩的更快
-9      压缩的更好

gzip命令使用实例

  1. 压缩文件
gzip csq

# 上述命令将压缩file.txt文件并生成一个新的gzip格式的文件file.txt.gz
  1. 解压文件:
gzip -d csq.gz

# 上述命令将解压file.txt.gz文件并生成一个新的file.txt文件。
  1. 查看压缩比:
gzip -v csq

csq:    71.3% -- replaced with csq2.gz

# 上述命令将压缩csq2文件,可以看出可怜的压缩率才有71.3%
  1. 压缩多个文件:
gzip *.txt

# 上述命令将压缩所有以.txt结尾的文件
  1. 压缩目录:
gzip -r dir

# 上述命令将压缩整个dir目录及其中的文件

zcat命令使用实例

zcat是一个用于查看gzip格式压缩文件内容的命令行工具,它可以将gzip格式的压缩文件展开,并直接输出展开后的内容。
zcat命令的使用示例:

  1. 使用gzip命令压缩文件:
gzip csq

# 上述命令将压缩file.txt文件并生成一个新的gzip格式的文件file.txt.gz。
  1. 使用gzip命令解压缩文件:
gzip -d csq.gz

# 上述命令将解压file.txt.gz文件并生成一个新的file.txt文件。
  1. 使用zcat命令查看gzip格式压缩文件内容:
zcat csq.gz

# 上述命令将展开file.txt.gz文件并将其内容输出到标准输出。

bzip2

bzip2则是为了替换gzip并提供更佳的压缩比而来,bzip2甚至要比gzip还要好,bzip2的用法和gzip几乎相同,下面看看bzip2的用法

bzip2 [选项] [文件名]

选项:
-c       将压缩的过程产生的数据输出到屏幕上
-d       解压缩文件
-k       保留原始文件
-z       压缩文件
-v       显示压缩或解压缩的信息
-f       强制覆盖输出文件并压缩链接
-1 到 -9 指定压缩级别,数字越大,压缩比越高,但耗费的时间也越长

bzip2命令使用实例

  1. 压缩文件:
bzip2 csq.txt
# 上述命令将压缩file.txt文件并生成一个新的bzip2格式的文件file.txt.bz2。
  1. 解压文件:
bzip2 -d csq.bz2

# 上述命令将解压缩file.txt.bz2文件并生成一个新的file.txt文件。
  1. 查看压缩比:
 bzip2 -v csq

 csq:     6.899:1,  1.160 bits/byte, 85.50% saved, 6961 in, 1009 out.

# 此时你就会看到csq 变成了 csq.bz2之外,你可以发现bzip2的压缩比要比gzip好
# 压缩率有原来gzip的71.3%提升到了bzip2的85.50%
  1. 压缩多个文件:
bzip2 *.txt

# 上述命令将压缩所有以.txt结尾的文件。

bzcat命令使用实例

  1. bzcat命令用于输出bzip2格式压缩文件的内容。其语法为:
bzcat 文件名.bz2
  1. 输出bzip2格式压缩文件file.txt.bz2的内容:
bzcat file.txt.bz2

xz

虽然说bzip2已经具有很棒的压缩比,不过显然某些自由软件开发者还不满足,因此后来还推出了xz这个压缩比更高的软件,这个软件的用法也跟gzip/bzip2几乎一模一样,我们来看看怎么使用

xz [选项] 文件名

选项
-d       解压缩文件
-t       测试文件的完整性
-l       列出压缩文件的相关信息
-k       保留原本的文件不删除
-v       显示压缩或解压缩的信息
-c       和之前两个解压缩命令一样,就是将数据在屏幕上输出
-1 到 -9 指定压缩级别,数字越大,压缩比越高,但耗费的时间也越长

xz命令使用实例

将文件csq压缩成xz格式的文件csq.xz

xz -v csq

csq (1/1)
  100 %             724 B / 6,893 B = 0.105
  
# 可以看到这个压缩比例直接上升到100%,容量又进一步下降更多

列出压缩文件的信息,读出压缩文件的内容

xz -l csq.xz 

Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
    1       1        724 B      6,893 B  0.105  CRC64   csq.xz
# 可以看到解压缩之前文件大小和解压缩后的文件大小,非常的人性化

解压缩文件

xz  -d  csq.xz

保留原来文件,创建这个文件的压缩文件

xz -k csq

# ls 当前目录就可以看到,原来的文件csq,和压缩之后的文件csq.xz

xzcat命令使用实例

xzcat命令用于输出xz格式压缩文件的内容。

xzcat 文件名.xz

打包命令:zip

zip可以将多个文件或目录打包成一个zip文件

zip命令的语法如下:

zip [选项] [压缩文件名] [文件或目录名]

选项:
-r:递归压缩子目录中的文件。
-q:安静模式,不输出任何消息。
-m:压缩后删除原文件。
-j:仅压缩文件,不包括目录。
-u:更新压缩文件,仅添加新文件和已修改的

zip命令的使用实例

将文件或目录压缩成zip文件:

zip -r compressed.zip directory/  csq/

# 这个命令将目录"directory/" 和 “csq”及其所有子目录和文件压缩成一个名为"compressed.zip"的zip文件。

添加文件到已有的zip文件:

zip -u compressed.zip file.txt

# 这个命令将文件"file.txt"添加到名为"compressed.zip"的zip文件中。

unzip

unzip命令可以将zip格式的文件解压缩到指定的目录中,或者将其解压缩到当前目录下。下面详细介绍一下unzip命令的使用方法。

unzip命令的基本语法如下:

unzip [选项] 文件名.zip [-d 目标目录]

选项:

-q:安静模式,不输出任何信息。
-o:覆盖已有的文件。
-j:只解压缩文件,不创建目录。
-d 目标目录:指定解压缩后的文件存放的目录,默认为当前目录。

unzip命令的使用示例

  1. 将文件file.zip解压缩到当前目录:
unzip file.zip
  1. 将文件file.zip解压缩到目录/home/user/下:
unzip file.zip -d /home/user/
  1. 只解压缩文件file.zip中的所有txt文件,并将其解压缩到当前目录:
unzip file.zip '*.txt'
  1. 将文件file.zip解压缩到目录/home/user/下,并覆盖已有的文件:
unzip -o file.zip -d /home/user/

打包命令:tar

tar是一个常用的Linux打包命令,可以将多个文件或目录打包成一个文件。tar本身不进行压缩,但可以配合gzip、bzip2等工具进行压缩,接下来我们来看看他的语法

tar [选项] 文件名

选项:
-c        新建打包文件
-f        指定打包后的文件名
-v        显示打包过程
-x        解包
-t        查看打包文件的内容
-z        使用gzip进行压缩/解压缩,时文件名最好为:*.tar.gz
-j        使用bzip2进行压缩/解压缩,此时文件名最好为:*.tar.bz2
-J        使用xz进行压缩/解压缩,此时文件名最好为:*.tar.xz
-C        这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
-P(小写)  保留备份数据的原本权限与属性,常用于备份重要的配置文件
-p(大写)  保留绝对路径,就是允许备份数据中含有根目录存在的意思

--exclude=要排除打包的文件名或目录名

tar命令使用案例

其实最简单的使用tar就只用记住下面的命令即可:

压缩:  tar -jcv  file.tar.bz2  [要被压缩的文件名字或者目录名称]
查询:  tar -jtv  file.tar.bz2
解压缩:tar -jxv  file.tar.bz2 -C [指定解压到的哪个目录]

file.tar.bz2 是自己取的文件名,tar并不会主动创建文件名,需要我们自定义,所以扩展名就显得很重要了,如果不加[-z][-j][-J]的话,文件名最好取为 *.tar即可。如果是 -j选项,代表bzip2的支持,因此文件名最好取为*.tar.bz2,因为bzip2会产生.bz2的扩展名,至于如果是加上了-z的gzip的支持,那文件名最好为*.tar.gz。

然后使用time查看-z ,-j,-J,哪个打包时间最长,哪个时间最短

[root@localhost ~]# time tar -jpcv -f etc.tar.bz2 /etc
...
...
real    0m3.928s
user    0m3.172s
sys     0m0.566s

[root@localhost ~]# time tar -zpcv -f etc1.tar.gz /etc
...
...
real    0m1.298s
user    0m1.061s
sys     0m0.395s

[root@localhost ~]# time tar -Jpcv -f etc2.tar.xz /etc
...
...
real    0m14.050s
user    0m13.251s
sys     0m1.293s

我们使用du -h 目录来查看他们创建的压缩文件所占用大小
[root@localhost ~]# du -h etc.tar.*
8.8M    etc.tar.bz2
10M     etc.tar.gz
7.2M    etc.tar.xz

# 可以看出压缩比越好当然花费的时间越长,虽然gzip速度块,总时间不到1秒,但是压缩率糟糕,使用xz的话,虽然压缩比最佳,不过要花14秒的可怕时间,还是仅仅备份7MB的文件!如果要备份很大的很久真的要考虑一下时间成本。

查看tar文件的数据内容(可查看文件名)

[root@localhost ~]# tar -jvt -f etc.tar.bz2 
....
....
drwxr-xr-x root/root         0 2023-04-06 15:25 etc/libreport/
drwxr-xr-x root/root         0 2020-04-02 21:38 etc/libreport/events/
drwxr-xr-x root/root         0 2023-04-06 15:25 etc/libreport/events.d/
-rw-r--r-- root/root       157 2022-02-24 01:09 etc/libreport/events.d/mdadm_
# 加上-v的选项,详细的文件权限/属性都会被列出来。如果只想知道文件名可以把-v去掉

打包某目录,但不含该目录下的某些文件应该怎么做呢?

假设我们要打包 /etc/yum 这几个目录,但却不想要打包 /etc/yum/vars 和 /etc/yum/version-groups.conf文件,而且假设这个新的打包文件为 yum.tar.bz2 ,此时我们可以通过 --exclude的帮忙。这个exclude就是不包含的意思,所以我们可以这样做

[root@localhost ~]# tar -jcv  -f yum.tar.bz2 --exclude=/etc/yum/vars  --exclude=/etc/yum/version-groups.conf   /etc/yum/
tar: 从成员名中删除开头的“/”
/etc/yum/
/etc/yum/protected.d/
/etc/yum/protected.d/systemd.conf
/etc/yum/pluginconf.d/
/etc/yum/pluginconf.d/fastestmirror.conf
/etc/yum/pluginconf.d/langpacks.conf
/etc/yum/fssnap.d/

以上就是Linux系统常见压缩命令和解压缩命令以及打包命令,可以根据需要进行选择
本文参考了《鸟哥Linux私房菜》这本书文章来源地址https://www.toymoban.com/news/detail-754770.html

到了这里,关于Linux系统常见的压缩命令和打包命令(gzip,zcat,bzip2,bzcat,xz,xzcat,zip,unzip,tar)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统-gzip命令 – 压缩和解压文件

    gzip命令来自于英文单词gunzip的缩写,其功能是用于压缩和解压文件。gzip是一款使用广泛的压缩工具,文件经过压缩后一般会以.gz后缀结尾,与tar命令合用后即为.tar.gz后缀。 据统计,gzip命令对文本文件的压缩比率通常能达到60%~70%,压缩后可以很好的提升存储空间的使用率,

    2024年02月08日
    浏览(49)
  • Linux中_使用tar_gzip_zip_rar_命令_打包和解包_压缩和解压

    1.3.1、到当前目录下 1.3.2、到指定目录下 3.1.1、压缩当前目录: 3.1.2、压缩指定目录: 3.2.1、到当前目录 3.2.2、到指定目录 4.2.1、压缩文件本身: 4.2.2、递归压缩,将指定目录下所有文件和子目录一并压缩:

    2024年02月04日
    浏览(60)
  • Ubuntu使用gzip与bzip2与rar和tar压缩解压

    目录 1、gzip压缩解压 2、bzip2压缩解压 3、tar压缩解压 tar.gz 4、zip压缩解压 因为都是系统自带的我们不需要安装; ls 看一下目录当前的文件,创建一个 touch 123.txt 文件; 原文件消失,压缩解压 gzip 进行压缩,(“ gzip 123.txt ”),这样就压缩完毕了; gzip 进行解压,(“ gzip

    2024年02月05日
    浏览(54)
  • Spark中常用的压缩方法(python:Gzip、Snappy、LZO、Bzip2 )

    Spark中常用的压缩方法有Gzip、Snappy、LZO、Bzip2等。 下面以Python代码为例,介绍如何使用这些压缩方法。 1.Gzip压缩方法 2.Snappy压缩方法 3.LZO压缩方法 4.Bzip2压缩方法 需要注意的是: 不同的压缩方法在使用时需要指定不同的格式,例如Gzip需要使用\\\"gzip\\\"格式,Snappy需要使用\\\"snappy\\\"格

    2024年02月15日
    浏览(45)
  • Linux bzip2命令教程:文件压缩与解压缩实战(附案例详解和注意事项)

    bzip2 是一个基于命令行的文件压缩器,它使用Burrows-Wheeler块排序文本压缩算法和哈夫曼编码来进行压缩。它的主要功能是压缩和解压缩文件,将多个文件绑定成一个单一的文件,这样可以减少原始文件所占用的存储空间。 bzip2 命令在大多数Linux发行版中都可以使用,包括Deb

    2024年04月15日
    浏览(52)
  • 【Linux命令详解 | gzip命令】 gzip命令用于压缩文件,可以显著减小文件大小

    在Linux中, gzip 命令是一款强大的文件压缩工具,它可以通过压缩文件的方式显著减小文件大小,从而节省存储空间并加速文件传输。无论是在文件备份、数据传输还是发布软件包时, gzip 命令都是一个非常有用的工具。在本文中,我们将深入探讨 gzip 命令的各个方面,包括

    2024年02月12日
    浏览(47)
  • nginx开启Gzip压缩,Vue性能优化之使用gzip压缩打包

    不管是vue项目还是react项目在使用webpack打包之后都会生成一个动辄一两兆甚至更大的js文件,在某些情况下严重影响项目性能,打开页面的时候白屏时间会很长,本文将介绍如何使用gzip压缩打包,主要是nginx部署的配置,非常重要,我查阅了很多文章基本都没用说清楚甚至错

    2024年02月02日
    浏览(43)
  • Linux gzip命令教程:如何有效地压缩和解压文件(附实例详解和注意事项)

    gzip (GNU zip)是一种在Linux系统中常见的命令行压缩工具。它使用DEFLATE压缩算法来减小文件的大小,使文件更易于存储和传输。 gzip 主要用于压缩文本文件、Tar归档文件和网页。不建议使用 gzip 来压缩图像、音频、PDF文档和其他已经压缩的二进制文件。 gzip 命令在大多数Lin

    2024年03月18日
    浏览(54)
  • Linux 压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

    Linux 压缩、解压文件的方式有如下几种: tar 是一种常用的打包工具,可以将多个文件或目录打包成一个 tar 包,也可以将一个 tar 包解压缩到指定的目录。 1.1. 压缩: 1.2. 解压: 1.3. tar 命令各参数含义 tar 命令是 Linux 下常用的打包和压缩工具,用于将多个文件或目录打包成一

    2024年02月10日
    浏览(52)
  • 【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

    目录 1、使用 tar 命令: 1.1. 压缩: 1.2. 解压: 1.3. tar 命令各参数含义 2. gzip、gunzip gzip 命令: 压缩文件: 保留原始文件,创建压缩文件: 保留原始文件,显示压缩进度: gunzip 命令: 解压文件: 保留压缩文件,创建原始文件: 保留压缩文件,显示解压进度: 3. zip、unzip

    2024年02月03日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包