树莓派 4B 下 Linux 系统命令行(8)

2021SC@SDUSC

文件压缩

你是否有过文件文件太大,导致无法以U盘将他复制完成的困扰,还有你是否有过要备份某些重要数据,偏偏这些数据量太大了,耗掉了你很多的磁盘空间呢,这个时候,那个『文件压缩』技术可就派的上用场了。

由于我们记录数字是 1 考虑计算机所谓的二进位如此一来 1 会在最右边占据 1 个bit,而其他的 7 个bits将会自动的被填上 0 所以说,剩下的那 7 位空间则是空值,而压缩就是将这些空值暂时的填充满,使其能够节约空间,当我们使用的时候,再将这些空值展开,这就是最常用的压缩技术。

 另外一种压缩技术也很有趣,他是将重复的数据进行统计记录的,举例来说,如果你的数据为『111....』共有100个1时,那么压缩技术会记录为『100个1』而不是真的有100个1的位存在,这样也能够精简文件记录的容量呢。

在这里有个小知识点,有些汇编语言算法,可以将一部电影压缩到几KB的大小,而且还可以有声音,是不是很神奇,这也是汇编语言的强大之处。

这是因为 Linux 支持的压缩命令非常多,且不同的命令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件,所以当你下载到某个压缩包时,自然就需要知道该文件是由哪种压缩命令所制作出来的,好用来对照着解压缩啊,也就是说,虽然 Linux 文件的属性基本上是与文件没有绝对关系的,但是为了好区分这些文件使用的是那种压缩技术,从而出现了拓展名。

文件备份

老实说,备份是系统损毁时等待救援的救星,因为你需要重新安装系统时,备份的好坏会影响到你系统复原的进度,不过我们想先知道的是,系统为什么会损坏啊?是人为的还是怎样产生的啊? 事实上,系统有可能由于不预期的伤害而导致系统发生错误,什么是不预期的伤害呢?这是由于系统可能因为不预期的硬件损坏,例如硬盘坏掉等等,或者是软件问题导致系统出错,包括人为的操作不当或是其他不明因素等等所致,下面我们就来谈谈系统损坏的情况与如何备份吧。

实验八:备份压缩部分 

1.实验目的 

1)掌握 Ubuntu 系统下文件系统中备份压缩部分命令行的原理及使用 

2.实验内容 

本次实验主要是掌握 Linux 系统下的备份压缩部分的使用,主要包括以下内容:
 
第八部分(备份压缩部分): 
1.zipinfo 命令 – 查看压缩文件信息 
2.zip 命令 – 压缩文件 
3.gzip 命令 – 压缩和解压文件 
4.unzip 命令 – 解压缩 zip 文件 
5.unarj 命令 – 解压.arj 文件 

3.实验环境 

树莓派 4B,系统为 Ubuntu 21.10 系统 。实验的编程环境为 Terminal 终端程序

4.实验步骤 

1.zipinfo 命令 – 查看压缩文件信息 

(1)语法 

         zipinfo  [参数]

(2)功能

 zipinfo命令用于列出压缩文件信息。执行zipinfo指令可得知zip压缩文件的详细信息。

(3)参数 

-1 只列出文件名称。
-2 此参数的效果和指定”-1″参数类似,但可搭配”-h”,”-t”和”-z”参数使用。
-h 只列出压缩文件的文件名称。
-l 此参数的效果和指定”-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率。
-m 此参数的效果和指定”-s”参数类似,但多会列出每个文件的压缩率。
-M 若信息内容超过一个画面,则采用类似more指令的方式列出信息。
-s 用类似执行”ls -l”指令的效果列出压缩文件内容。
-t 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率。
-T 将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出。
-v 详细显示压缩文件内每一个文件的信息。
-x<范本样式> 不列出符合条件的文件的信息。
-z 如果压缩文件内含有注释,就将注释显示出来。

(4)实例

显示压缩文件信息:

[root@localhost ~]# zipinfo cp.zip 
Archive: cp.zip  486 bytes  4 files
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 a.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 b.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 c.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 e.c
4 files, 0 bytes uncompressed, 0 bytes compressed: 0.0%
[root@localhost ~]# 

2.zip 命令 – 压缩文件 

(1)语法 

         zip  [参数]  [文件] 

(2)功能

zip命令可以用来解压缩文件,或者对文件进行打包操作,zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有 ".zip" 扩展名的压缩文件,由于各种系统都支持zip的压缩格式,所以在一定程度上,是可以通用的。

(3)参数 

[root@localhost ~]# zip --help

命令语法:[ zip/unzip [选项] 文件或目录 ]

        -r              #递归压缩,连同子目录一同压缩
        -S              #包含系统和隐藏文件
        -v              #显示指令执行过程
        -q              #不显示指令执行过程

(4)实例

  通过使用zip -r -v 命令将/etc/目录全部内容压缩:

[root@localhost ~]# zip -r -v lyshark.zip /etc/

[root@localhost ~]# ls -lh
total 12M
-rw-r--r--. 1 root root 12M Nov 16 09:46 lyshark.zi

3.gzip 命令 – 压缩和解压文件 

(1)语法 

         gzip  [参数] 

(2)功能

gzip命令是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用,其拓展名为gz,gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式,据统计gzip命令对文本文件有60%~70%的压缩率,减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

注:将一个大文件通过压缩算法变成一个小文件,gzip命令不能直接压缩目录,因此需要先用tar打包成一个文件,然后tar再调用gzip进行压缩

(3)参数 

-d  # 加开压缩文件

-v  # 显示指令执行的过程

-l  # 列出压缩文件的内容消息

-c  # 将内容输出到标准输出,不改变原始文件

-r  # 将目录下的所有文件递归进行压缩操作

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

(4)实例

(1)压缩实例:通过使用gzip -rv命令压缩一个文件:

[root@localhost ~]# ls -lh
total 944K
-rwxr-xr-x. 1 root root 942K Sep 26  2017 bash

[root@localhost ~]# gzip -rv bash
bash:    51.2% -- replaced with bash.gz

[root@localhost ~]# ls -lh
total 460K
-rwxr-xr-x. 1 root root 460K Sep 26  2017 bash.gz

(2)查询实例:通过使用gzip -l/zcat -l命令查询一个文件:

[root@localhost ~]# gzip -l bash.gz

         compressed        uncompressed  ratio uncompressed_name
             470300              964544  51.2% bash

[root@localhost ~]# zcat -l bash.gz
         compressed        uncompressed  ratio uncompressed_name
             470300              964544  51.2% bash

(3)解压实例:通过使用gzip -dv / zcat命令解压一个文件:

[root@localhost ~]# ls -lh
total 460K
-rwxr-xr-x. 1 root root 460K Sep 26  2017 bash.gz

[root@localhost ~]# gzip -dv bash.gz
bash.gz:         51.2% -- replaced with bash

[root@localhost ~]# zcat -d bash.gz >bash_zcat
[root@localhost ~]# ls -lh
total 2.1M
-rw-r--r--. 1 root root 942K Nov 16 06:56 bash
-rw-r--r--. 1 root root 942K Nov 16 06:56 bash.zcat
-rwxr-xr-x. 1 root root 460K Sep 26  2017 bash.gz

4.unzip 命令 – 解压缩 zip 文件

(1)语法 

         unzip  [参数]  [文件] 

(2)功能

 unzip命令可以解压zip命令或其他压缩软件压缩的zip格式的文件

(3)参数 

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令。

(4)实例

通过使用unzip -l命令查询一个压缩包中的文件:

[root@localhost ~]# unzip -l lyshark.zip

通过使用unzip -d命令将文件解压到指定目录:

[root@localhost ~]# unzip lyshark.zip -d /tmp/

[root@localhost ~]# ls -lh /tmp/
total 12K
drwxr-xr-x. 84 root root 8.0K Nov  6 11:02 etc

5.unarj 命令 – 解压.arj 文件 

(1)语法 

         unarj  [参数]  [.arj 压缩文件] 

(2)功能

unarj命令用于解压缩.arj文件。unarj为.arj压缩文件的压缩程序。

(3)参数 

-e 解压缩.arj文件。
-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否正确。
-x 解压缩时保留原有的路径。

(4)实例

解压缩.arj文件:

[root@localhost ~]# unarj -e test.arj

显示压缩文件内所包含的文件:

[root@localhost ~]# unarj -l test.arj

检查压缩文件是否正确:

[root@localhost ~]# unarj -t test.arj

解压缩时保留原有的路径:

[root@localhost ~]# unarj -x test.arj

把文件解压到当前路径:

[root@localhost ~]# unarj -ex test.arj
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值