Linux第六节文件打包与解压缩

一、概念讲解

Windows 上最常见的是三种以.zip,.rar,.7z 为后缀的压缩文件,而在 Linux 上常见常用的除了以上三种外,还有.gz,.xz,.bz2,.tar,.tar.gz,.tar.xz,tar.bz2,简单介绍如下:

文件后缀名  说明

.zip zip 程序打包压缩的文件

.rar rar 程序压缩的文件

.7z 7zip 程序压缩的文件

.tar tar 程序打包,未压缩的文件

.gz gzip 程序(GNU zip)压缩的文件

.xz xz 程序压缩的文件

.bz2 bzip2 程序压缩的文件

.tar.gz tar 打包,gzip 程序压缩的文件

.tar.xz tar 打包,xz 程序压缩的文件

tar.bz2 tar 打包,bzip2 程序压缩的文件

.tar.7z tar 打包,7z 程序压缩的文件

一般只需要掌握 zip,rar,tar即可。

二、实战

2.1 zip 压缩打包程序

•使用 zip 打包文件夹:

$ zip -r -q -o shiyanlou.zip /home/shiyanlou

$ du -h shiyanlou.zip

$ file shiyanlou.zip

上面命令将 shiyanlou 的 home 目录打包成一个文件,并查看了打包后文件的大小和类型。第一行命令中,-r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。du 命令查看打包后文件的大小。

•设置压缩级别为 9 和 1(9 最大,1 最小),重新打包:

$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/.zip

$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/.zip

这里添加了一个参数用于设置压缩级别 -[1-9],1 表示最快压缩但体积大,9 表示体积最小但耗时最久。-x 是为了排除上一次创建的 zip 文件,否则又会被打包进这一次的压缩文件中,注意:这里只能使用绝对路径,否则不起作用。

用 du 命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小:

$ du -h -d 0 .zip ~ | sort

man 手册可知:

•h, --human-readable

•d, --max-depth(所查看文件的深度)

默认压缩级别是最高的,效果很明显,每个用户在环境中操作之后看到的压缩文件大小可能会不同,因为系统在使用过程中,会随时生成一些缓存文件在当前用户的家目录中,可以忽略这些不同。

•创建加密 zip 包

使用 -e 参数可以创建加密压缩包:

$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou

注意: 关于 zip 命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果想让在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么还需要对命令做一些修改:

$ zip -r -l -o shiyanlou.zip /home/shiyanlou

需要加上 -l 参数将 LF 转换为 CR+LF 来达到以上目的。

2.2 使用 unzip 命令解压缩 zip 文件

将 shiyanlou.zip 解压到当前目录:

$ unzip shiyanlou.zip

使用安静模式,将文件解压到指定目录:

$ unzip -q shiyanlou.zip -d ziptest

上述指定目录不存在将会自动创建。如果不想解压只想查看压缩包的内容可以使用 -l 参数:

$ unzip -l shiyanlou.zip

注意: 使用 unzip 解压文件时同样应该注意兼容问题,不过这里是中文编码的问题,通常 Windows 系统上面创建的压缩文件,如果有有包含中文的文档或以中文作为文件名的文件时默认会采用 GBK 或其它编码,而 Linux 上面默认使用的是 UTF-8 编码,如果不加任何处理,直接解压的话可能会出现中文乱码的问题(有时候会自动处理),为了解决这个问题,可以在解压时指定编码类型。

使用 -O(英文字母,大写 o)参数指定编码类型:

unzip -O GBK 中文压缩文件.zip

2.3 rar 打包压缩命令

rar 也是 Windows 上常用的一种压缩文件格式,在 Linux 上可以使用 rar 和 unrar 工具分别创建和解压 rar 压缩包。

•安装 rar 和 unrar 工具:

$ sudo apt-get update

$ sudo apt-get install rar unrar

•从指定文件或目录创建压缩包或添加文件到压缩包:

$ rm *.zip

$ rar a shiyanlou.rar .

上面的命令使用 a 参数添加一个目录 ~ 到一个归档文件中,如果该文件不存在就会自动创建。

注意:rar 的命令参数没有 -,如果加上会报错。

•从指定压缩包文件中删除某个文件:

$ rar d shiyanlou.rar .zshrc

•查看不解压文件:

$ rar l shiyanlou.rar

•使用 unrar 解压 rar 文件

全路径解压:

$ unrar x shiyanlou.rar

去掉路径解压:

$ mkdir tmp

$ unrar e shiyanlou.rar tmp/

rar 命令参数非常多,上面只涉及了一些基本操作。

2.4 tar 打包工具

在 Linux 上面更常用的是 tar 工具,tar 原本只是一个打包工具,只是同时还是实现了对 7z、gzip、xz、bzip2 等工具的支持,这些压缩工具本身只能实现对文件或目录(单独压缩目录中的文件)的压缩,没有实现对文件的打包压缩,所以无需再单独去学习其他几个工具,tar 的解压和压缩都是同一个命令,只需参数不同,使用比较方便。

tar 命令一些基本的使用方式,即不进行压缩只是进行打包(创建归档文件)和解包的操作。

•创建一个 tar 包:

$ tar -cf shiyanlou.tar ~

上面命令中,-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后,比如不能写成 tar -fc shiyanlou.tar,可以写成 tar -f shiyanlou.tar -c ~。你还可以加上 -v 参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的 /,你也可以使用 -P 保留绝对路径符。

•解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):

$ mkdir tardir

$ tar -xf shiyanlou.tar -C tardir

•只查看不解包文件 -t 参数:

$ tar -tf shiyanlou.tar

•保留文件属性和跟随链接(符号链接或软链接),有时候使用 tar 备份文件当在其他主机还原时希望保留文件的属性(-p 参数)和备份链接指向的源文件而不是链接本身(-h 参数):

$ tar -cphf etc.tar /etc

对于创建不同的压缩格式的文件,对于 tar 来说是相当简单的,需要的只是换一个参数,这里使用 gzip 工具创建.tar.gz 文件为例来说明。

•只需要在创建 tar 文件的基础上添加 -z 参数,使用 gzip 来压缩文件:

$ tar -czf shiyanlou.tar.gz ~

•解压 .tar.gz 文件:

$ tar -xzf shiyanlou.tar.gz

现在我们要其它的压缩工具创建或解压相应文件只需要更改一个参数即可:

压缩文件格式  参数

.tar.gz -z

.tar.xz -J

*tar.bz2 -j

需要了解更多可以查看 man 手册获取帮助。

三、总结

常用命令:

•zip:◦打包 :zip something.zip something (目录请加 -r 参数)

◦解包:unzip something

◦指定路径:-d 参数

•tar:◦打包:tar -zcvf something.tar something

◦解包:tar -zxvf something.tar

◦指定路径:-C 参数

四、火炉

$ sudo apt-get install libaa-bin

(提示 command not found ,请自行解决)

$ aafire

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,565评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,021评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,003评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,015评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,020评论 5 370
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,856评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,178评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,824评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,264评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,788评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,913评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,535评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,130评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,102评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,334评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,298评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,622评论 2 343

推荐阅读更多精彩内容