Linux 打包和压缩 方法详解
一般基因组的数据都非常大,所以都会 打包 压缩 后进行传输,拿到数据后的第一步必然就是要 解包 和 解压缩。
基本常识
首先要弄清两个概念:打包 和 压缩。
打包 是指将一大堆文件或目录变成一个总的文件;
压缩 则是将一个大的文件通过一些压缩算法变成一个小文件。
Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。(打包有点复杂,压缩就简单了,打包分目录打包 和 文件打包,具体情况与Windows下的操作类似)
tar命令已经足够优秀了,可以同时打包压缩,也可以同时解包解压缩.
实例
如下是一些常见的情况:
正
怎么一起打包压缩?
# 参数:常见的-v 显示操作过程;-f 指定备份文件; tar -cvf log.tar log2012.log # 仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log # 打包后,以 gzip 压缩 tar -jcvf log.tar.bz2 log2012.log # 打包后,以 bzip2 压缩 # 核心参数:-c 建立新的备份文件,证明此命令是用来打包的 # -z 通过 gzip 压缩打包文件,压缩后文件后缀为 .gz # -j 通过 bzip2 压缩打包文件,压缩后文件后缀为 .bz2
怎么分步打包压缩?
# -r 是指进行递归处理, 类似rm -r gzip -r log.tar # 压缩一个 tar 备份文件
bzip2 filename #进行 bzip2 压缩 bzip2 -z filename #进行 -z 强制压缩
反
拿到 .tar.gz 文件:
一步到位
tar -zxvf filename.tar.gz -C 欲解压缩的目录
tar -jxvf filename.tar.bz2 -C 欲解压缩的目录
拿到 .gz 或 .bz2 文件:
bzip2 -d filename.bz2 # -d 执行解压缩
gzip -dv * # -d 解压缩 -v 显示执行过程 gzip -dr * # 递归解压缩目录
其他技巧:
怎么排除选中某些文件?