Linux笔记 Day15---(常见压缩工具:zip、unzip;gzip、gunzip;bzip2、bunzip2;xz、unxz;打包归档命令tar ;建立YUM源服务器)

本文详细介绍了Linux系统中常见的压缩工具,如zip、unzip、gzip、gunzip、bzip2、bunzip2、xz和unxz的使用方法,以及打包归档命令tar的功能。通过实例演示了如何进行文件和目录的压缩、解压缩、打包和解打包操作。此外,还提到了建立YUM源服务器的基础步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和

通常,归档总是会和系统(数据)备份联系在一起

和归档文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小

压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。

由于计算机处理的信息是以二进制的形式表示的,因此,压缩软件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就能够被大大压缩。把一个或者多个文件用压缩软件进行压缩,形成一个文件压缩包,既可以节省存储空间,又方便在网络上传送

如果你能够理解文件压缩的基本原理,那么很容易就能想到,对文件进行压缩,很可能损坏文件中的内容,因此,压缩又可以分为有损压缩和无损压缩。无损压缩很好理解,指的是压缩数据必须准确无误;有损压缩指的是即便丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式 mpeg、音乐文件格式 mp3 以及图像文件格式 jpg。

采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常比原文件小很多。需要注意的是,压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称解压缩

一、zip命令

压缩文件或目录

在 Windows 系统上使用 “.zip”格式压缩文件,其实“.zip”格式文件是 Windows 和 Linux 系统都通用的压缩文件类型,属于几种主流的压缩格式(zip、rar等)之一,是一种相当简单的分别压缩每个文件的存储格式,

通过此命令压缩得到的新文件,其扩展名通常标记为“.zip”

用法: zip [选项] 压缩包名 源文件或源目录列表

注意,zip 压缩命令需要手工指定压缩之后的压缩包名,建议自己写好.zip扩展名,以便区别及解压缩时使用。

zip命令在压缩任务完成后,默认会保留原始文件

常用选项:

  • -r: 递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。
  • -m: 将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。
  • -v: 显示详细的压缩过程信息。
  • -q: 在压缩的时候不显示命令的执行过程。
  • -压缩级别: 压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。
  • -u: 更新压缩文件,即往压缩文件中添加新文件。
  • -d: 从压缩文件内删除指定的文件。

【例 1】
压缩passwd.txt文件

[root@admin roottest]# zip passwd.zip passwd.txt 
  adding: passwd.txt (deflated 79%)
[root@admin roottest]# ll passwd.zip 
-rw-r--r-- 1 root root 1439 84 10:20 passwd.zip
[root@admin roottest]# ls
 passwd.txt  passwd.zip

可以看到,压缩后源文件依然会保留

不仅如此,该命令还可以同时压缩多个文件,例如:

[root@admin ~]# ls
anaconda-ks.cfg  UserManage.sh  userrecord.txt  u.sh
[root@admin ~]# zip messages.zip anaconda-ks.cfg UserManage.sh  userrecord.txt u.sh 
 adding: anaconda-ks.cfg (deflated 49%)
 adding: UserManage.sh (deflated 38%)
 adding: userrecord.txt (deflated 76%)
 adding: u.sh (stored 0%)
[root@admin ~]# ls
anaconda-ks.cfg  messages.zip  UserManage.sh  userrecord.txt  u.sh
[root@admin ~]# 

【例 2】

压缩效率分别为3和9

[root@admin roottest]# zip  -3 passwd3.zip passwd.txt 
  adding: passwd.txt (deflated 77%)
[root@admin roottest]# zip  -9 passwd9.zip passwd.txt 
  adding: passwd.txt (deflated 79%)
[root@admin roottest]# ll 
总用量 16
-rw-r--r--  1 root root 1566 84 10:33 passwd3.zip
-rw-r--r--  1 root root 1439 84 10:33 passwd9.zip
-rw-r--r--. 1 root root 6086 82 15:53 passwd.txt

注:
压缩率(Compression ratio),描述压缩文件的效果名,是文件压缩后的大小与压缩前的大小之比
例如:把100m的文件压缩后是90m,压缩率为90/100*100%=90%,压缩率一般是越小越好,但是压得越小,解压时间越长。

压缩效率越大压缩后的文件越小,解压时间越长

【例 3】

将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件

[root@admin roottest]# zip -r test.zip ./*

【例 4】

删除test.zip压缩文件中的passwd.txt文件

[root@admin roottest]# zip -d test.zip passwd.txt 
deleting: passwd.txt

【例 5】

向压缩文件test.zip中添加file1文件

[root@admin roottest]# zip -m test.zip  file1 
  adding: file1 (stored 0%)

【例 6】

压缩文件时排除某个文件

#将当前目录下的所有文件进行压缩除了passwd.txt文件
[root@admin roottest]# ls
passwd3.zip  passwd9.zip  passwd.txt  test.zip
[root@admin roottest]# zip test1.zip ./* -x passwd.txt 
  adding: passwd3.zip (stored 0%)
  adding: passwd9.zip (stored 0%)
  adding: test.zip (stored 0%)

二、unzip命令

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

用法: unzip [选项] 压缩包名

unzip命令在解压缩任务完成后,默认会保留原始文件

常用选项:

  • -d: 目录名 将压缩文件解压到指定目录下。
  • -n: 解压时并不覆盖已经存在的文件。
  • -o: 解压时覆盖已经存在的文件,并且无需用户确认。
  • -v: 查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。
  • -t: 测试压缩文件有无损坏,但并不解压。
  • -x: 文件列表 解压文件,但不包含文件列表中指定的文件。

【例 1】

将压缩文件test.zip在当前目录下解压缩

[root@admin test001]# ls
file.zip
[root@admin test001]# unzip file.zip
Archive:  file.zip
 extracting: 00file                  
 extracting: 01file                  
 extracting: 02file                  
 extracting: 03file                  
 extracting: 04file                  
 extracting: 05file                  
[root@admin test001]# ls
00file  01file  02file  03file  04file  05file  file.zip

可以看到,解压缩后元压缩文件还存在

【例 2】

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

[root@admin test001]# unzip -n test.zip -d /tmp 

【例 3】

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

[root@admin test001]# unzip -v file.zip
#或
[root@admin test001]# unzip -l file.zip

【例 4】

将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件,并且无需用户手动确认

[root@admin test001]# unzip -o test.zip -d /tmp

【例 5】

解压当前目录下的所有zip文件

[root@admin test001]# unzip "*.zip"

三、gzip命令

压缩文件或目录

gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为“.gz”

gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。

gzip命令在压缩或

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值