
0、常见的压缩格式
| 格式 | 描述 | 备注 |
|---|---|---|
| *.zip | zip程序压缩的文件; | 为兼容WIN端 |
| *.gz | gzip程序压缩的文件; | 只压缩文件 |
| *.bz2 | bzip2程序压缩的文件; | 只压缩文件 |
| *.xz | xz程序压缩的文件; | 只压缩文件 |
| *.tar | tar程序打包的文件,并没有压缩过; | 只打包文件 |
| *.tar.gz | tar程序打包的文件,并且经过gzip的压缩; | |
| *.tar.bz2 | tar程序打包的文件,并且经过bzip2的压缩; | |
| *.tar.xz | tar程序打包的文件,并且经过xz的压缩; |
压缩
1、gzip,zcat/zmore/zless/zgrep,(*.gz)
- gzip所建立的压缩文件格式为 *.gz;
- 当用gzip进行文件压缩时,在默认状态下原本的文件会被压缩成 *.gz 文件,源文件会被删除;
- 用gzip压缩的文件,在win端可以用WinRAR和7zip解压;
命令语法
压缩命令
$ gzip [选项与参数] 文件名
选项与参数
-c : 将压缩的数据输出到屏幕上,可通过数据流重定向来处理-d : 解压缩的参数-t : 可以用来检验一个压缩文件的一致性,看看文件有无错误-v : 可以显示出源文件/压缩文件的压缩比信息-# : # 为数字,代表压缩等级,-1 最快,但是压缩比最差;-9 最慢,但是压缩比最高;默认是-6
例程
- 压缩
用最简单的指令压缩文件 compress.txt
$ gzip compress.txt
运行结果
原本compress.txt文件不复存在,目录下生成一个压缩文件
$ compress.txt.gz
- 解压缩
解压缩刚才压缩的文件
$ gzip -d compress.txt.gz
运行结果
$ compress.txt
查看压缩包内容
- zcat
无需解压就可以查看压缩包里的内容
$ zcat 文件名.gz
- eprep
2、bzip2,bzcat/bzmore/bzless/bzgrep,(*.bz2)
- 比gzip有更高的压缩比;
命令语法
压缩命令
$ bzip2 [参数与选项] 文件名
选项与参数
bzip2与gzip相似。-c : 将压缩的过程产生的数据输出到屏幕上-d : 解压缩的参数-k : 保留原始文件,而不会删除原始的文件-z : 压缩的参数(默认值,可以不加)-v : 可以显示出源文件/压缩文件的压缩比等信息-# : 与gzip参数相同
3、xz,xzcat/xzmore/xzless/xzgrep,(*.xz)
- 压缩比比bzip2更高;
-
命令语法
压缩命令
$ xz [参数与选项] 文件名
参数与选项
-d : 解压缩-t : 测试压缩文件的完整性-l : 列出压缩文件的相关信息-k : 保留原本的文件不删除-c : 将数据在屏幕上输出-# : 同样的,压缩比参数
打包并压缩
1、tar
-
命令语法
压缩
$ tar [必要参数] [参数1] [可选参数] [-f 压缩后的压缩包名] [待压缩的文件夹名]
解压缩
$ tar [必要参数] [参数1] [可选参数] [-f 现有的压缩包名] [-C 指定的解压路径] // 指定解压路径$ tar [必要参数] [参数1] [可选参数] [-f 现有的压缩包名] // 解压到当前路径
查看压缩包文件内容
$ tar [必要参数] [参数1] [可选参数] [-f 要查看的压缩包名]
参数与选项
tar的选项与参数非常多,只列举几个常用的选项。更多选项查阅
$ man tar
- 必要参数:
此处的必要参数只能选一个,以下选项不能同时出现在一条命令里。
-z : 通过gzip的支持进行压缩或者解压缩,对应的拓展名为 *.tar.gz-j : 通过bzip2的支持进行压缩或者解压缩,对应的扩展名为 *.tar.bz2-J : 通过xz的支持进行压缩或者解压缩,对应的扩展名为 *.tar.xz
- 参数1:
此处的参数只能选一个,以下参数不能同时出现在同一条命令里
-c : 压缩-t : 查看压缩包里的文件-x : 解压
可选参数
-v : 在压缩或者解压缩过程中,显示正在处理的文件
例程
压缩
将 friend/ 打包成 *.tar.gz
$ tar -zcvf friend.tar.gz friend/
或
$ tar -zcf friend.tar.gz friend/ // 不显示过程文件
将 friend/ 打包成 *.tar.bz2
$ tar -jcvf friend.tar.bz2 friend/
将 friend/ 打包成 *.tar.xz
$ tar -Jcvf friend.tar.xz friend/
解压
解压 friend.tar.gz
$ tar -zxvf friend.tar.gz // 解压到当前文件夹
或
$ tar -zxvf friend.tar.gz -C test/ // 解压到当前文件夹下的test文件夹
解压 friend.tar.bz2
$ tar -jxvf friend.tar.bz2 // 解压到当前文件夹
解压 friend.tar.xz
$ tar -Jxvf friend.tar.xz // 解压到当前文件夹
