“在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命令不止能压缩单个文件,它最神奇的是可以压缩多个文件linux上解压缩war文件,不须要你新建目录就可以直接压缩哦
rm passwd.zip
zip 3.zip f1 f2 f3
这就是压缩多个文件的操作。
下边再讲解几个特别重要的参数吧,都是十分有用的参数
# -m参数 压缩以后删除被压缩的文件
rm 3.zip
zip -m 3.zip f1 f2 f3
第二个参数是压缩目录的操作
# -r 参数 可以对目录进行压缩
cd ..
zip -r -m t1.zip testzip
里面的就是普遍的压缩操作鸟哥的linux私房菜,讲完了压缩,我们来讲怎样对zip文件进行解压缩吧。解压缩操作就比较简单了,基本一条命令直接解决
# 查看压缩文件内容
unzip -v t1.zip
# 进行解压缩 -d参数指定解压到什么位置
unzip -d . t1.zip
解压文件也是一样的操作
# 解压文件
cd testzip
unzip 3.zip
gzip和bzip压缩
里面讲解了zip的压缩和解压缩操作,而且我们平常不仅.zip压缩文件以外,虽然见的最多或则用的最多的就是.gz文件还有.bz2文件了,这两种压缩方式各有千秋,gz的压缩速率更快,而bz的压缩比更好,不过你们没必要在乎那些东西,晓得看到哪些格式用哪些解压就好了。
在生物信息当中,或则linux中linux上解压缩war文件,我认为见的最多的应当gz文件了,我们就从gz的压缩和解压缩开始讲上去吧。
因为里面详尽的讲解了zip的操作和参数,虽然其他的压缩命令也都邯郸小异,此处就没有好多的截图了,你们一定要自己尝试练习一下,这样才能有个印象,最至少晓得压缩是用的哪些程序。
使用gzip进行压缩操作,
以及怎样压缩之后保留源文件而且重命名压缩后的文件
cd testzip
# gzip会默认压缩源文件但是不保留源文件
gzip passwd
gunzip passwd.gz
# 如果你想保留源文件请使用-c参数
gzip -c passwd > passwd.gz
(-c参数讲解linux下socket编程,如今不懂没关系,前面会讲解管线和重定向的,-c将压缩好的结果放在标准输出,之后使用重定向放进文件passwd.gz中)
gzip是不可以压缩目录的,假如你指定了一个目录进行压缩,它会把目录下的所有文件都单独进行压缩,得到.gz文件,你们自己尝试一下即可。
对gz文件的解压操作
# 基础解压
gunzip passwd.gz
# -l命令 查看压缩文件基本信息 如压缩比 文件名等等
gunzip -l passwd.gz
# -c 和gzip相似,只是把解压结果放进标准输出了
gunzip -c passwd.gz > p1
下边就是关于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
下边是解打包,只须要把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!
最后,关注我的公众号,发放更多学习资料和享受更快的文章更新速率吧!!!