TIP
这些是本篇文章的标签,来发现更多感兴趣的内容吧
科研
生信分析
Linux教程
B站ID:Biomamba-生信基地
来源:BV1hT411F7r7
- 上一节课我们介绍的软链接与硬链接可以帮助大家节省写代码所需要的时间,并且还可以节省一部分硬盘的储存空间;如果想让我们的文件在硬盘中占据的空间再少一些,这就可以用到我们这节课介绍的文件压缩与解压缩命令。
- 在我们熟悉的Windows系统中,有许多软件可以用于进行文件压缩或解压缩,比如7-zip,WinRAR等
- 对于文本文件,通常压缩后的体积只占到压缩前的20%,这样就可以极大地节省硬盘的空间。
- 对于要处理高通量测序数据的各位同学,文件的压缩显得尤为重要,通常在文件压缩的过程中,我们还会进行一定程度的打包教程,这样可以保证文件传输的过程顺利进行,避免受到文件数量的影响;打包结束后,我们可以使用md5校验去检查文件的完整性。
查看硬盘空间
- 在生物信息学的分析过程中,我们通常会预留数据大小10倍以上的空间来用于数据的后续分析
使用df命令查看可用磁盘空间
- df命令是disk free的简称,显示的是还没有被使用的剩余硬盘空间
- 推荐加上-h选项,这样显示出来的空间会以MB、GB、TB等比较好理解的方式展示
1
df -h 要查看的目录(可选)
- 如果不加想要查看的目录,那命令就会返回计算机中所有挂载的硬盘的空间信息
使用du命令查看已用硬盘空间
- du命令和dh命令的语法基本一致,只不过返回的内容是已经使用了的硬盘空间
- 推荐加上-h选项,这样显示出来的空间会以MB、GB、TB等比较好理解的方式展示
1
dh -h 要查看的目录(可选)
简单的文件压缩命令:gzip
- gzip命令的语法:
1
gzip 选项 需要被压缩的文件名
注意:gzip命令只能压缩文件,不能压缩文件夹
gzip命令的选项
gzip -c
- -c:保留原文件,会直接把压缩后的文件作为标准输出打印在终端;我们不推荐进行这样的操作,因为压缩后的内容会以二进制的方式被展示在终端,而这种二进制是不可读的,会出现终端的乱码
- 避免上述情况:在使用-c参数时,把标准输出重定向到本地的文件中,比如使用下面的命令:
1
gzip -c Flynn.txt > Flynn.txt.gz
- 如果不使用-c选项和提示符,直接运行gzip+需要压缩的命令,那原文件会消失,同时出现一个压缩好的,.gz格式的文件,就像下面这样
1
gzip Flynn.txt
- 要查看.gz格式的文件,可以使用zcat命令
1
zcat Flynn.txt.gz | head
gzip -d
- -d选项会帮我们解压缩对应的文件
1
gzip -d Flynn.txt.gz
gzip -v
- -v选项可以显示文件的压缩率
- 对于单细胞测序动辄100GB的文件来说,压缩后的文件通常不会大于20GB,这样就节省了大量的存储空间
- 实际的压缩率往往取决于文件的格式,对于图片和视频这种原本就是二进制的文件,压缩能起到的减小体积的作用是极为有限的
gunzip:另一种解压缩命令
- 可以加上-c选项,如果加了这个选项,系统会把解压缩以后的结果输出在终端,而对原本的.gz格式的压缩文件没有任何调整
- 如果不带任何选项,直接运行gzip+需要解压的文件命令,那就可以实现原文件的删除和被解压的文件的出现
- gunzip命令的语法:
1
gunzip 选项 需要解压的文件
- 示例:
1
gunzip -c Flynn.txt
zip命令
- zip命令的语法
1
zip 选项 压缩后的文件名 需要压缩的文件名
与gzip命令不同,zip命令是可以对文件夹进行操作的
- 如果想要对文件夹进行操作,输入的时候可以写文件名.dir,或者写绝对路径
- 在对文件夹进行压缩时,请记得加上-r选项
- zip命令的解压缩:unzip命令
1
unzip 需要解压的文件
bzip2命令
- 这个命令与gzip命令基本相同,都不能处理文件夹,需要注意的是-k选项代表的是保留原文件
1
bzip2 -k Flynn.txt
- bzip2文件的解压:使用bunzip2命令
注意:zcat只能应对输入为.gz格式,也就是使用gzip命令压缩的文件,对于zip命令和bzip2命令压缩的文件,zcat命令是无法处理的
万能的压缩命令:tar命令
- tar命令非常强力,不仅支持对文件夹的压缩,而且支持使用不同的压缩命令进行压缩
可以说掌握了tar命令的话,前面的命令看看就好,真的忘记了也是没有关系的
- tar命令的语法:
1
tar 选项 需要压缩的文件
tar命令的常用选项
- -c:create的缩写,建立新的文件(打包)
- 如果生成了新的文件,那tar命令应该写成下面这种形式
1
tar -c 新生成的文件(通常以.tar.gz结尾) 需要压缩的文件
- 如果生成了新的文件,那tar命令应该写成下面这种形式
- -x:解包
- -v:会把压缩了哪些文件输出在屏幕上,熟练用户可以不敲
- -f:指定文件(默认加)
- -z:使用gzip进行压缩/解压缩
- -j:使用bzip2进行压缩/解压缩
tar命令的常见用法
- 简单打包:-cvf
1
tar -cvf 新生成的文件(通常以.tar结尾) 需要打包的若干文件
注意:简单打包不涉及对文件的压缩,文件的体积不太会发生变化
- 打包的同时压缩为-gz文件:-czf
1
tar -czf 新生成的文件(通常以.tar.gz结尾) 需要打包的若干文件
- 打包的同时压缩为.bz2文件:-cjf
1
tar -cjf 新生成的文件(通常以.tar.bz2结尾) 需要打包的若干文件
在使用不同方式压缩文件时,需要注意修改对应的新生成文件名,避免解压缩时出现可能的报错
- 解压:使用-x选项,同时使用了什么方法压缩,就要使用对应的选项解包,比如对于使用gzip方式压缩的文件,我们要使用
1
tar -xzf Flynn.tar.gz
- 对于使用了bzip2方式压缩的文件,我们要使用
1
tar -xjf Flynn.tar.bz2
使用tar命令在解压缩的时候,是不会删除压缩文件的
md5校验
- MD5是一种密码相关函数,其功能在于对生成的文件进行摘要的细节提取
- 通过对MD5的比对,我们可以知道这些文件是否完整,有没有损坏。
生成md5值:使用md5sum命令
- md5sum命令的语法:
1
md5sum 需要处理的文件
- 我们可以把md5sum命令输出的结果写入一个txt文件
1
md5sum 需要处理的文件 > Flynn.md5.txt
使用md5值检验文件:加上-c选项
- md5sum -c命令的语法
1
md5sum -c 记载有md5值的txt文件