【Linux系统】第6节 Linux系统压缩与解压缩文件

caocao2年前教程274

压缩与解压缩实例操作

对文件进行压缩与解压缩

  1. 打开终端,并以超级管理员身份登录运行,回到根目录下,先查询根目录下有哪些目录与文件,因为tmp是存放临时文件的,方便练习,进入该目录。
  2. 在/tmp目录中建立一个大小为100m的文件。使用命令dd if=/dev/zero of=/tmp/bigfile bs=1M count=100,在tmp目录中新增一个100M大小的文件,文件名为bigfile,生成后查看,确定已生成。(dd 命令用于读取、转换并输出数据。if为input 输入文件;of为output 输出文件;bs为单位;)
  3. 查询明确目标的详细信息,输入命令 ls -lh bigfile,可以看到bigfile文件大小为100M。
  4. 输入命令 gzip bigfile 对bigfile文件进行压缩,压缩后查询目录下文件信息,可以看到生成文件bigfile.gz,同时原文件已删除。另外可以查看压缩后的文件的大小,只有100KB。
  5. 使用命令 gunzip bigfile.gz 对bigfile文件进行解压缩,压缩后查询目录下文件信息,可以看到生成文件bigfile,同时压缩文件已删除。
  6. 使用命令 bzip2 bigfile 对文件进行压缩,并使用 ls -lh bigfile.bz2,可以看到bigfile.bz2文件大小为113B。
  7. 使用命令 bunzip2 bigfile.bz2 对文件进行解压缩,并使用 ls -lh bigfile,可以看到bigfile文件大小为100M。

对目录/文件夹进行打包并压缩、解压缩并开包

逻辑顺序:对于文件夹进行压缩时,处理逻辑顺序是将其打包为一个整体文件后,再使用gzip和bzip2等命令进行压缩,解压缩则是先解压成包,再开包成文件夹。具体操作步骤如下:

  1. 建立含有多个大文件的目录。与1.1节同理,在tmp文件夹下创建大文件bigfile2,新建一个目录为allfile,并将1.1节中的bigfile和bigfile2两个大文件都剪切到allfile中,可以看到在tmp目录下已经有allfile文件夹,并成功将两个大文件剪切进其中。
  2. 查看allfile目录的大小。输入du -sh allfile/,可以看到allfile目录的大小为200M.
  3. 尝试用gzip和bzip2对目录进行压缩,发现均失败。这两个工具均只能对文件进行压缩,因此思路为将目录转化为整体文件,先打包。
  4. 打包。输入命令 tar -cf /tmp/allfile.tar /tmp/allfile,将/tmp目录下的allfile目录创建为/tmp目录下的allfile.tar的备份文件。其中tar命令用于备份文件;c为:creat,创建;f为:file,文件;f必须放在c的后面。打包后查询文件信息,可以看到生成文件allfile.tar,同时allfile目录仍存在。(补充:tar -tvf allfile.tar 在不打开这个包的情况下查看包中有什么内容)
  5. 压缩。输入命令 gzip allfile.tar 对allfile.tar文件进行压缩,压缩后查询目录下文件信息,可以看到生成文件allfile.tar.gz,同时原文件allfile.tar已不存在。另外可以查看压缩后的文件的大小,只有200KB。
  6. 解压缩。使用命令 gunzip allfile.tar.gz 对allfile.tar.gz文件进行解压缩,解压缩后查询目录下文件信息,可以看到生成文件allfile.tar,同时压缩文件allfile.tar.gz已不存在。
  7. 将备份文件还原。先输入命令rm -fr allfile删除原有的allfile目录,再使用命令 tar -xf allfile.tar 从allfile.tar备份文件中还原文件,并被还原到当前目录下的子目录/tmp中(此处为/tmp/tmp)。其中,选项-x为:从备份中还原文件;若在命令最后面加-C /root/,代表还原到/root目录下,若-C后面加目的目录。还原后查询目录下文件信息,可以看到生成子目录tmp,子目录tmp里再生成子目录allfile,同时备份文件allfile.tar仍存在。
  8. 上述对目录进行压缩都是先建立备份文件再压缩,是否可以直接一步到位将目录创建备份文件的同时压缩。可以通过在创建备份文件时增加选项来达到,具体步骤如下:
  • 将/tmp/tmp下的allfile目录移到/tmp目录下。
  • 使用命令 tar -zcf /tmp/allfile.tar.gz /tmp/allfile,将allfile目录创建备份文件同时并以gzip的方式压缩成allfile.tar.gz。
  • 在tmp目录下,使用命令 rm -fr allfile,将原allfile文件删除。
  • 使用命令 tar -zxf /tmp/allfile.tar.gz -C /tmp,将压缩文件allfile.tar.gz并以gunzip的方式解压缩并还原。尝试比较不同目标目录的解压效果
  1. 上述的一次性压缩和解压缩法均是采用的gzip工具,加入希望采用bzip工具,只需要将“-z”换成“-j”,且后缀“gz”换成“bz2”,即压缩时命令为:tar -jcf /tmp/allfile.tar.bz2 /tmp/allfile;解压缩时命令为:tar -jxf /tmp/allfile.tar.bz2 -C /tmp

dd命令详解

作用

Linux中dd命令用于读取、转换并输出数据。dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

参数说明

  • if=文件名:inputfile,输入文件名,默认为标准输入。即指定源文件。
  • of=文件名:outputfile,输出文件名,默认为标准输出。即指定目的文件。
  • ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
  • obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
  • bs=bytes:同时设置读入/输出的块大小为bytes个字节。
  • cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
  • skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
  • seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
  • count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  • conv=,关键字可以有以下11种: 1)conversion:用指定的参数转换文件。 2)ascii:转换ebcdic为ascii 3)ebcdic:转换ascii为ebcdic 4)ibm:转换ascii为alternate ebcdic 5)block:把每一行转换为长度为cbs,不足部分用空格填充 6)unblock:使每一行的长度都为cbs,不足部分用空格填充 7)lcase:把大写字符转换为小写字符 8)ucase:把小写字符转换为大写字符 9)swap:交换输入的每对字节 10)noerror:出错时不停止 11)notrunc:不截短输出文件
  • sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
  • --help:显示帮助信息
  • --version:显示版本信息

gzip命令详解

作用

Linux中gzip命令用于压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

语法

gzip 文件名称:压缩文件 gzip [-acdfhlLnNqrtvV] [-S <压缩字尾字符串>] [-] [--best/fast] [文件...] gzip [-acdfhlLnNqrtvV] [-S <压缩字尾字符串>] [-] [--best/fast] [目录]

常用例子

  • -a--ascii:使用ASCII文字模式。
  • -c--stdout--to-stdout:把压缩后的文件输出到标准输出设备,不去更动原始文件。
  • -d--decompress--uncompress:解开压缩文件。
  • -f--force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
  • -h--help:在线帮助。
  • -l--list:列出压缩文件的相关信息。
  • -L--license:显示版本与版权信息。
  • -n--no-name:压缩文件时,不保存原来的文件名称及时间戳记。
  • -N--name:压缩文件时,保存原来的文件名称及时间戳记。
  • -q--quiet:不显示警告信息。
  • -r--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
  • -S--suffix:更改压缩字尾字符串。
  • -t--test:测试压缩文件是否正确无误。
  • -v--verbose:显示指令执行过程。
  • -V--version:显示版本信息。
  • -<压缩效率>:压缩效率是一个介于1-9的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高。
  • --best:此参数的效果和指定"-9"参数相同。
  • --fast:此参数的效果和指定"-1"参数相同。

bzip2命令详解

作用

Linux bzip2命令是.bz2文件的压缩程序。bzip2采用新的压缩算法,压缩效果比传统的LZ77/LZ78压缩算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

语法

bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][-<压缩等级>][要压缩的文件]

常用例子

  • -c--stdout:将压缩与解压缩的结果送到标准输出。
  • -d--decompress:执行解压缩。
  • -f--force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
  • -h--help:显示帮助。
  • -k--keep:bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
  • -s--small:降低程序执行时内存的使用量。
  • -t--test:测试.bz2压缩文件的完整性。
  • -v--verbose:压缩或解压缩文件时,显示详细的信息。
  • -z--compress:强制执行压缩。
  • -L,--license,-V--version:显示版本信息。
  • --repetitive-best:若文件中有重复出现的数据时,可利用此参数提高压缩效果。
  • --repetitive-fast:若文件中有重复出现的数据时,可利用此参数加快执行速度。
  • <压缩等级>:压缩时的区块大小。

tar命令详解

作用

Linux中tar(英文全拼:tape archive)命令用于备份文件。tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

语法

tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块大小>][-C <目录>][-f <备份文件>][-F <脚本文件>][-T <文件>][-V <备份文件>][--help][--version][文件或目录...]

相关文章

wifi破解工具python代码(python高效率破解wifi脚本)

wifi破解工具python代码(python高效率破解wifi脚本)

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 Python使用SCP输...

vMix Pro 24破解补丁使用教程

vMix Pro 24破解补丁使用教程

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 vMix Pro 24破...

蓝龙游戏盒免费下载

蓝龙游戏盒免费下载

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 【基本介绍】金兰今日头条...

破解路由器用户名及密码的详细图文教程

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 现在人使用路由器上网的非...