Linux系列7 | 一文搞懂压缩问题

在windows里,我们经常会对文件进行压缩和解压缩操作,这是我们在日常使用必不可少的操作,但是没有图形化的linux应该如何操作呢?

# 下载下面链接的文件 并命名为Gp.bigbed
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBe
wget -O Gp.bigbed https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBe

# 一次性在后台下载下面的所有文件
vim dlist1
# 将后面的三个链接放进dlist1中
wget -b -i dlist1 -o w.log

通过上节课的学习,相信你已经学会了如何从互联网进行文件的下载,但是我们可以看到很多文件是压缩文件,而且我们在日常使用中也会经常进行压缩操作和解压操作。

在Windows中,我们大部分都会使用winrar或者bzip等等压缩程序进行压缩和解压缩操作,但是在没有图形化界面的linux下,我们应该如何进行压缩和解压操作呢。这就是我们今天要讲解的两组命令,zip系列和tar系列。

在Linux中,所谓的压缩操作其实有两种,我们分别称为打包和压缩。压缩,就是我们理解的,通过算法对一个文件进行压缩,使其占用空间变小。而打包操作,就是对一个目录以及目录下的所有文件进行打包在一起,做成一个文件,这个过程称为打包,有的时候也叫它归档。不过现在的打包软件已经集成了压缩功能,打包以后会进行压缩,不用我们在进行一次压缩了。

zip压缩

我们在windows中用的最多的压缩格式其实就是zip格式了,它在我们的linux下也是可以使用的。

而且对于zip来说,它是可以直接把目录放在一起进行压缩的,不过对于压缩效率和压缩时间来说,zip并不是最好的格式和压缩方法,故此处我们简要介绍一下如何创建zip和解压zip文件。

下面首先创建一些文件和文件夹来供我们进行压缩

(如果你看不懂下面在做什么,请重新学习Linux系列2-5)

cd ~
mkdir testdir
cd testdir
mkdir testzip
cd testzip
vim f1
vim f2
vim f3
cp /etc/passwd .
cd ..
图片

zip命令格式:zip 参数 压缩结果文件名 待压缩文件1 待压缩文件2 . . .

我们目前是有这样的一个目录,下面先进行单个文件压缩操作

# 使用zip进行单个文件的压缩
cd testzip
zip passwd.zip passwd
图片

我们可以看到压缩完成了,得到了,zip文件,这就是压缩单个文件的操作。

我们的zip命令不止能压缩单个文件,它最神奇的是可以压缩多个文件,不需要你新建目录就可以直接压缩哦

rm passwd.zip
zip 3.zip f1 f2 f3
图片

这就是压缩多个文件的操作。

下面再讲解几个非常重要的参数吧,都是非常有用的参数

# -m参数 压缩以后删除被压缩的文件
rm 3.zip
zip -m 3.zip f1 f2 f3
image.gif

第二个参数是压缩目录的操作

# -r 参数 可以对目录进行压缩
cd ..
zip -r -m t1.zip testzip

上面的就是普遍的压缩操作,讲完了压缩,我们来讲如何对zip文件进行解压缩吧。解压缩操作就比较简单了,基本一条命令直接解决

# 查看压缩文件内容
unzip -v t1.zip
图片
# 进行解压缩 -d参数指定解压到什么位置
unzip -d . t1.zip

解压文件也是一样的操作

# 解压文件
cd testzip
unzip 3.zip

gzip和bzip压缩

上面讲解了zip的压缩和解压缩操作,但是我们平时除了.zip压缩文件以外,其实见的最多或者用的最多的就是.gz文件还有.bz2文件了,这两种压缩方法各有千秋,gz的压缩速度更快,而bz的压缩比更好,不过大家没必要在意这些东西,知道看见什么格式用什么解压就好了。

在生物信息当中,或者linux中,我觉得见的最多的应该gz文件了,我们就从gz的压缩和解压缩开始讲起来吧。

由于上面详细的讲解了zip的操作和参数,其实其他的压缩命令也都大同小异,此处就没有很多的截图了,大家一定要自己尝试练习一下,这样才会有个印象,最起码知道压缩是用的什么程序。

使用gzip进行压缩操作

以及如何压缩以后保留源文件并且重命名压缩后的文件

cd testzip
# gzip会默认压缩源文件但是不保留源文件
gzip passwd
gunzip passwd.gz
# 如果你想保留源文件请使用-c参数
gzip -c passwd > passwd.gz

(-c参数讲解,现在不懂没关系,后面会讲解管道和重定向的,-c将压缩好的结果放到标准输出,然后使用重定向放进文件passwd.gz中)

gzip是不可以压缩目录的,如果你指定了一个目录进行压缩,它会把目录下的所有文件都单独进行压缩,得到.gz文件,大家自己尝试一下即可。

对gz文件的解压操作

# 基础解压
gunzip passwd.gz
# -l命令 查看压缩文件基本信息 如压缩比 文件名等等
gunzip -l passwd.gz
# -c 和gzip相似,只是把解压结果放进标准输出了
gunzip -c passwd.gz > p1
image.gif

下面就是关于bzip的讲解,其实gzip讲完了,bzip就更没什么可以讲的了

# 基本压缩
bzip2 passwd
# 解压缩
bunzip2 passwd.bz2
# 保留原始文件
bzip2 -k passwd
# 也是保留原始文件
bunzip2 -k passwd.bz2

最后,还有一个数字参数,是gzip和bzip共有的,放在这里进行讲解

这个数字参数是压缩比,1是压缩比最差的,9是压缩比最高的

# 此处使用gzip举例
gzip -1 passwd
gzip -c -9 p1 > passwd1.gz # 这里的p1和passwd是一样的
ls -lh
图片

相信大家应该已经看懂了。

tar归档打包

好了,最后的最后,我们来讲解一下tar命令,这个命令很多人初学的时候都很懵逼,因为这个命令都是各种组合参数,什么cvf什么xvf什么cvzf一类的。

大家用着非常不舒服,觉得不如zip用着实在,但是很多文件就是使用tar进行打包归档的,后缀名是.tar.gz这种,又必须得使用它,让人头疼。不过学了接下来的内容,你就再也不会头疼了,让我们开始吧。

我们来一组一组的说,首先说c和x参数,

-c参数:打包操作

-x参数:解打包操作

也就是说,只要我们进行打包操作,我们就必须使用-c参数,只要进行解打包操作,我们就必须使用-x参数。

然后是必须出现的两个参数,-v参数和-f参数

-v参数:显示过程

-f参数:指定打包结果名称(待解包的包名)

这两个参数,我们是始终的都要进行使用的,这是非常好的习惯。

讲了这几个参数以后,我们就可以开始打包了

# 打包我们的testzip文件夹
tar -cvf tz.tar testzip
rm -rf testzip
image.gif

下面是解打包,只需要把c换成x就可以了

图片

上面就是打包操作的全流程了,但是我们经常还能看见另一组参数,-z参数和-j参数。还记得我们上面说过,tar命令具有打包压缩功能吗,这两个参数就是对tar打包的文件进行压缩操作的方法。

-z参数:生成.tar.gz的压缩

-j参数:生成.tar.bz2的压缩

一目了然,让我们赶快来试试吧

# 使用tar打包为.bz2
 tar cvfj testzip.tar.bz2 testzip/
 # 删了原始的 更真实的模拟真实操作
 rm -rf testzip
 # 解压bz2的包
 tar xvfz testzip.tar.bz2

是不是已经超级简单了,看到xcfvzj这种参数都没有了陌生感,后面再练习一下就可以彻底掌握了。

# 清理文件
cd ~
rm -rf testdir
# 在家里建立test文件夹
# 在test文件夹建立文本文件 t1 t2 t3 并且复制/etc/fstab过来
# 压缩t1 t2 t3为bz2
# 压缩fstab为gz并且保留原始文件
# 打包test目录为一个.tar.gz
# 删除原始目录
# 解压test文件夹
# 解压fstab
# 解压包含t1t2t3的bz2文件

今天的分享就到这里了,下一次的分享将是Linux中的终极概念,管道和重定向,学会了这两个概念,你才算是真正的开始对Linux的探索之旅。
如果你喜欢我的文章,请收藏我的文章并且给我个赞,你的支持就是我更新的最大的动力,关注我会有更多惊喜哦,专注于生物信息学以及数据分析入门和进阶教程,也许我给不了你从10-100,但是我可以给你最好的从0-10!

最后,关注我的公众号,领取更多学习资料吧!!!

打开v搜索,”轻松玩转生信“或者从下面文章进去获取二维码关注哦

二维码传送门

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

推荐阅读更多精彩内容