Linux 压缩与解压
最常用的压缩命令
后面的压缩命令太多了,如果不需要那么多细节可以不用看,直接记住经常用的就可以了,如果能耐满足你的需要,后面的内容就不用看了,反正我是不愿意看这些。
tar.gz 格式:
- 压缩命令: tar -zcvf filename.tar.gz 要被压缩的文件名称或目录名称
- 解压缩命令: tar -zxvf filename.tar.gz -C 解压到哪里
zip2 格式:
- 压缩命令: tar -jcvf filename.tar.bz2 要被压缩的文件名称或目录名称
- 解压缩命令: tar -jxvf filename.tar.bz2 -C 解压到哪里
好了就到这里了后面的内容根据心情决定看不看吧
Linux中常见的压缩格式
在Linux中常见的压缩文件扩展名大多是*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2, Linux本身是不关心文件的扩展名的,这些所谓的扩展名其实是用来给人分辨压缩格式用的。
*.Z compress 程序压缩的文件(这个基本上已经没有人用了,而且这个格式的压缩包可以使用gzip来解压,仅在一些很古老的系统上可能会用到)
*.gz gzip程序压缩的文件
*.gz2 bzip2程序压缩的文件
*.tar tar程序打包的数据,并没有压缩过
*.tar.gz tar程序打包的文件,经过gzip的压缩
*.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩
压缩命令介绍
compress
compress这个压缩命令是非常老旧的一款,基本上已经没有什么人在用了,而且这个格式的压缩包可以是用gzip来解压缩,新版的Linux中已经没有这个命令了,如果一定要使用这个命令可以自己进行安装(yum install ncompress)
compress [-rcv] 文件或目录 # 压缩命令
uncompress 文件.Z # 解压命令
-r 可以连同目录下的文件也同时进行压缩
-c 将压缩的数据输出成为standard output (输出到屏幕上,可以使用重定向输出到文件)
-v 可以显示出压缩后的文件信息以及压缩过程中的一些文件名变化
示例:
执行 "compress -c test.txt > test.Z" 命令,可以将test.txt文件压缩称为test.Z压缩包
gzip, zcat
gzip目前使用的比较广泛,肯能大部分都在用gzip吧,gzip压缩的文件可以使用zcat直接进行查看
gzip [-cdtv#] 文件名 # 压缩命令
zcat 文件名.gz # 直接进行查看
-c 将压缩的数据输出到屏幕上,可通过数据流重定向输到文件中,具体可以参见compress的示例
-d 解压缩
-t 可以用来检验一个压缩文件的一致性,看看文件是否有误
-v 可以显示出原文件/压缩文件的压缩比等信息
-# 压缩登记, -1 最快,但是压缩比最差,-9最慢但是压缩比最好,默认为-6
bzip2, bzcat
bzip2可以提供更高的压缩比,用法基本上与gzip相同,同样bzip2压缩的文件可以使用bzcat命令来直接查看
bzip2 [-cdkzv#] 文件名 # 压缩命令
bzcat 文件名.bz2 # 直接进行查看
-c 将压缩的数据输出到屏幕上,可通过数据流重定向输到文件中,具体可以参见compress的示例
-d 解压缩
-k 保留源文件,而不会删除原始文件
-z 压缩
-v 可以显示出原文件/压缩文件的压缩比等信息
-# 压缩登记, -1 最快,但是压缩比最差,-9最慢但是压缩比最好
打包命令
以上的命令有一个问题,就是只能压缩一个文件,如果直接使用gzip与bzip2对目录压缩的话其实也是对目录下的文件进行分别压缩操作,这也太low了吧,所以上面的内容我是没单独用过,下面的命令才真香。
tar
这个命令才是灵魂,这个参数的命令有有很多,下面的只是常用的
tar [-j|-z] [cv] [-f 新建的文件名] filename ⇐ 打包与压缩
tar [-j|-z] [tv] [-f 新建的文件名] ⇐ 查看文件名
tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录] ⇐ 解压缩
-c 新建打包文件
-t 查看打包文件的内容(查看里面的文件名的)
-x 解打包或解压缩用的,主要啊,-c, -t, -x不可同时出现
-j 通过bzip2格式进行压缩打包,给压缩包起名字的时候最后以 *.tar.gz2 做为扩展名,虽然不写没有错,但是写上了以后就能直观的看到格式了
-z 通过gzip的格式进行压缩打包,后缀名字最好为 *.tar.gz,理由跟上面的那个一样
-v 在压缩/解压的过程中显示正在处理的文件名字
-f filename 就因为这个参数我上面整整齐齐的格式被它打乱了,但是不说又不行。这个参数后面要接被处理的文件名
-C 目录 这个参数用在解压缩的时候,若要在特定目录下解压缩,可以使用这个参数
这里还有几个我没用过的参数
-p 保留备份数据的原本权限与属性,常用语备份
-P 保留绝对路径
--exclude=FILE 在压缩的过程中,不要将FILE打包
Notice: 以上内容部分整理自《鸟哥的Linux私房菜》
详细内容请查询《鸟哥的Linux私房菜 第三版》9.2 节