1.概述
压缩:
指通过某些算法,将文件尺寸进行相应的缩小,同时不损失文件的内容。
打包:
指将多个文件(或目录)合并成一个文件,方便传递或部署。
在Linux系统中,文件的后缀名不重要,但是针对于压缩文件的后缀名是必须的,因为可以让其他的程序员根据文件的后缀名使用对应的算法进行解压。
Linux常见的压缩文件后缀名:
*.gz | gzip程序压缩的文件 |
*.bz2 | bzip2 程序压缩的文件 |
*.tar | tar命令打包的数据,并没有压缩过 |
*.tar.gz | tar程序打包的文件,并且经过 gzip 的压缩 |
*.tar.bz2 | tar程序打包的文件,并且经过 bzip2 的压缩 |
2.压缩命令
2.1gzip
压缩/解压命令
选项:
-c : | 将压缩的数据输出到标准输出(stdout)上 |
-d : | 解压缩 |
-t : | 可以用来检验一个压缩文件的一致性,看看文件有无错误 |
-v : | 可以显示出原文件/压缩文件的压缩比等信息 |
-(1,2,...,9): | 压缩等级,1最快,但是压缩比最差;9最慢,但是压缩比最好,默认是6。 |
-l : | 查看压缩文件的压缩比: gzip –l *.gz |
gzip -c :将压缩的数据输出到标准输出(stdout)上 (标注输出--即控制台上)
gzip -d :解压缩后压缩文件就没了
--------------------------------------------------------------------
gzip 可以用数据重定向:
如: gzip -c passwd >> passwd.gz
通过-c指令,将流输出到passwd.gz中, >>表示进行对标准输出进行数据重定向
案例:
cp /root/install.log /home/gzip
1,gzip -c install.log //将压缩的数据输出到标准输出
2,gzip –v install.log //压缩完显示
这时发现源文件不在了,如果想保留源文件,可以用数据重导向技术
3,gzip -d install.log.gz //解压
4,gzip -c install.log > install.log.gz
5,gzip -t install.log.gz //检查文件是否有误
6,gzip -c9v install.log //提高压缩比(文件如果本身很小可能体现不出来)
2.2bzip2
压缩/解压命令:
选项
-c : | 将压缩的过程产生的数据输出到标准输出(stdout) |
-d : | 解压缩的参数 |
-k : | 保留源文件,而不会删除原始的文件 |
-v : | 可以显示出原文件/压缩文件案的压缩比等信息; |
-(1,2,...,9): | 与gzip同样的,都是在计算压缩比的参数,-9最佳,-1最快 |
- gzip拥有更快的压缩性能。
- bzip2拥有更高的压缩比。
- 单纯从压缩比方面来说,那么bzip2 > gzip > compress
- bzip2 不能使用数据重定向
查看压缩文件中的内容:
- cat:可以用来查看文本文件中的内容。
- zcat:可以用来查看gzip算法压缩的压缩文件内容。
- bzcat:可以用来查看bzip2算法压缩的压缩文件内容。
3. 打包、解包命令
tar:可以将一个文件/夹打包成一个文件。可以结合gzip、bzip2的算法对包文件进行相应的压缩和解压。
语法:
压缩: tar [选项] newFileName.tar.gz sourceFileName
解压: tar [选项] fileName.tar.gz [-C /path]
选项:
-c : | 建立打包文件, |
-t : | 查看打包文件的内容含有哪些文件 |
-x : | 解打包或解压缩的功能,可以搭配-C(大写)在指定目录解开 |
-j : | 通过bzip2的支持进行压缩/解压缩:此时文件最好为 *.tar.bz2 |
-z : | 通过gzip的支持进行压缩/解压缩:此时文件最好为 *.tar.gz |
-v : | 在压缩/解压缩的过程中,将正在处理的文件名显示出来 |
-f filename: | -f 后面跟处理文件的全名称(路径+文件名+后缀名) |
-C 目录: | 这个选项用在解压的时候,若要在特定目录解压,可以使用这个选项 |
注:
使用命令进行打包、压缩的时候,使用了什么算法,文件后缀名就一定要与其对应
案例:
压缩:
1、使用gzip的算法进行打包压缩。
# bash
tar -zcvf install.log.tar.gz install.log
注意tar的语法,tar -zcvf newFile sourceFile
2、使用bzip2的算法进行打包压缩。
# bash
tar -jcvf install.log.tar.bz2 install.log
3、如果想要压缩指定目录中的内容是,可以考虑使用绝对路径。
# bash
tar -zcvf [path]/newFileName.tar.gz [path]/sourceFile
解压:
1、将一个压缩包文件解压到当前目录下
# bash
tar -zxvf install.log.tar.gz
执行完成之后,文件会在当前的目录下,解压后会覆盖原文件。
2、将一个压缩包文件解压到指定目录下
# bash
tar -zxvf install.log.tar.gz -C /
3、只解压包中的某个文件
# bash
tar -zxvf etc.tar.gz etc/shells
4、配置jdk环境变量:
# bash
tar -zxvf jdk-8u131-linux-x64.tar.gz
cd jdk1.8.0_131
pwd # 复制路径
vim /etc/profile # profile文件是系统环境变量的配置文件
在该文件的最后一行添加内容:
export JAVA_HOME=[path]
export PATH=$JAVA_HOME/bin:$PATH
保存退出
source /etc/profile
使环境变量生效