前言:虽然已经有很多关于linux的文件压缩和打包的文章了,但在此本人还是想发此篇博客去帮助更多的初学者,以鼓励他们学习Linux的心。对于初学者本人建议阅读《鸟哥的Linux私房菜》和《Linux命令行大全》这两本书,不太建议看《Linux内核刨析》毕竟太厚了也很难理解!
tips:本博客是在看完《鸟哥的Linux私房菜》后有感而发也是第一次发,所以请大家多多包涵并提建议。
# Linux系统常见的压缩命令
*几种常见的压缩命令扩展名:*.tar、*.gz、*.bz2、*.Z、*.tgz
(注:因为Compress压缩命令是非常老旧的一款,且我们的CentOS默认并没有安装这个软件到系统当中,所以不太推荐,如果有想要了解的请先安装ncompress这个软件)
*gzip,zcat
1.gzip的压缩命令:gzip [-cdtv#] 文件名
-c: 将压缩的数据输出到屏幕上,可以通过数据流定向来处理
-d: 解压缩的参数
-t: 检验一个压缩文件的一致性,判断是否有错
-v: 显示原文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,但压缩比差,-9最慢,但压缩比好。默认是-6(个人觉得已经足够了)
示例:
注: 使用gzip进行文件压缩时会生成*.gz压缩文件,但会把原文件删除
若想压缩并保留原文件请参考以下命令:
gzip -c 原文件名 > 原文件名.gz
示例:
2.查看压缩文件内容命令: zcat
示例:
*bzip2,bzcat
若说gzip是为了替代compress压缩而建立,那么bzip2则是为了取代gzip并提供更佳的压缩比而来的。且bzip2的用法和gzip几乎相同,生成*.bz2压缩文件。说明如下:
1.bzip2的压缩命令:bzip2 [-cdtv#] 文件名
-c: 将压缩的数据输出到屏幕上,可以通过数据流定向来处理
-d: 解压缩的参数
-k:保留原文件,而不会删除原始的文件
-v: 显示原文件/压缩文件的压缩比等信息
-z: 压缩参数
-#:压缩等级,-1最快,但压缩比差,-9最慢
示例(将刚才的 /home/liuguohan/liuguohan.c以bzip2的方式进行压缩):
注:gzip和bzip2压缩都是针对单一文件,虽然gzip和bzip2也可以针对目录来进行压缩,不过,都是将目录中的文件“分别”进行压缩!!!
bzip2的其他用法与gzip几乎相同,请参考以上说明。
*打包命令: tar
其实最简单的使用tar就只需记忆下面的方式即可:
1.压缩:tar -jcv -f filename.tar.bz2
2.查询:tar -jtv -f filename.tar.bz2
3.解压缩:tar -jxv -f filename.tar.bz2 -C欲解压缩的目录
参数:
-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-x: 解压缩的功能,可以搭配-C解压到指定目录
-f: 后面接被处理的文件名。建议-f单独写一个参数
-j: 是指以bzip2压缩
-z: 以gzip压缩
注: filename.tar.bz2是自己起的文件名,tar并不会主动创建文件名。要自定义!
tar的参数非常多,请参考man tar查询
2.打包某目录但不包含该目录下的某些文件的做法:
命令: tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc*--exclude=/root/system.tar.bz2 /etc/root(这个exclude就是不包含的意思)
希望能够帮助到大家!谢谢!