Linux 压缩、解压和打包命令
在Linux中可以识别的常见压缩格式有十几种,最常用的是 gzip,bzip2,tar,zip等。减少文件大小有两个明显的好处:1)是可以减少存储空间,2)是通过网络传输文件时,可以减少传输的时间。一、gzip,gunzip命令文件经gzip压缩命令过后,其名称后面会多出“.gz”的扩展名。gzip命令对文本文件大概有60%~70%的压缩率。注...
在Linux中可以识别的常见压缩格式有十几种,最常用的是 gzip,bzip2,tar,zip等。
减少文件大小有两个明显的好处:
1)是可以减少存储空间,
2)是通过网络传输文件时,可以减少传输的时间。
一、gzip,gunzip命令
文件经gzip压缩命令过后,其名称后面会多出“.gz”的扩展名。gzip命令对文本文件大概有60%~70%的压缩率。
注意:只能压缩文件,不能压缩目录,压缩后不保留原始文件。
语法:gzip [参数] [filenames]
参数:
- -a或--ascii 使用ASCII文字模式。
- -c或--stdout或--to-stdout 把压缩后的文件输出到标准输出设备,不去更动原始文件。
- -d或--decompress或----uncompress 解开压缩文件。
- -f或--force 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
- -h或--help 在线帮助。
- -l或--list 列出压缩文件的相关信息。
- -L或--license 显示版本与版权信息。
- -n或--no-name 压缩文件时,不保存原来的文件名称及时间戳记。
- -N或--name 压缩文件时,保存原来的文件名称及时间戳记。
- -q或--quiet 不显示警告信息。
- -r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
- -S<压缩字尾字符串>或----suffix<压缩字尾字符串> 更改压缩字尾字符串。
- -t或--test 测试压缩文件是否正确无误。
- -v或--verbose 显示指令执行过程。
- -V或--version 显示版本信息
1、压缩和解压缩当前目录下的文件
1)压缩:gzip -v FileName
列出某压缩文件的相关信息
2)解压缩: gunzip -v FileName.gz 或者 gzip -dv FileName.gz
2、压缩和解压缩目录(本质压缩的是其下的文件,不推荐)
1)压缩:gzip -rv FileName
2)解压缩:gunzip -rv FileName.gz 或者 gzip -drv FileName.gzv
二、bzip2,bunzip2命令
bzip2采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好,压缩比要比gzip更高一些。
若没有加上任何参数,bzip2压缩完文件后会产生一个“.bz2”扩展名的压缩文件,并删除原始的文件。
注意:只能压缩文件,不能压缩目录,-k 压缩后保留原始文件。
语法:bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][- 压缩等级][要压缩的文件]
参数:
- -c或--stdout 将压缩与解压缩的结果送到标准输出。
- -d或--decompress 执行解压缩。
- -f或--force bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
- -h或--help 显示帮助。
- -k或--keep bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
- -s或--small 降低程序执行时内存的使用量。
- -t或--test 测试.bz2压缩文件的完整性。
- -v或--verbose 压缩或解压缩文件时,显示详细的信息。
- -z或--compress 强制执行压缩。
- -L,--license,显示版本与版权信息。
- -V或--version 显示版本信息。
- --repetitive-best 若文件中有重复出现的资料时,可利用此参数提高压缩效果。
- --repetitive-fast 若文件中有重复出现的资料时,可利用此参数加快执行速度。
- -压缩等级 压缩时的区块大小。
1、压缩和解压缩当前目录下的文件,压缩后不保留原始文件
1)压缩: bzip2 -v FileName
2)解压缩:bunzip2 -v FileName.bz2 或者 bzip2 -dv FileName.bz2
2、压缩和解压缩当前目录下的文件,压缩后保留原始文件
1)压缩:bzip2 -kv FileName
2)解压缩:bunzip2 -v FileName.bz2 或者 bzip2 -dv FileName.bz2
三、tar 打包/拆包命令
虽然 gzip与bzip2 可以单独工作,但是,最常用的方式还是结合 tar 命令一起来用。在日常的工作中,拆包解压,绝对要比压缩打包的次数多得多。
这是因为在实际生产环境中,我们遇到的情况通常不是只针对一个文件进行压缩,而是针对多个文件和文件夹一起打包并压缩。而 tar 就是用来打包用的。
注意:文件打包后会产生一个“.tar ”扩展名的打包文件,保留原始文件。拆包也保留打包的文件
语法:
打包:tar [参数] DirName/FileName.tar DirName
拆包:tar [参数] DirName/FileName.tar
参数:
- -z 表示用 gzip 进行压缩或解压缩。如果同时使用了 -x 选项,则表示解压。如果使用了 -c 选项,则表示压缩。
- -j 表示用 bzip2 进行压缩或解压缩。如果同时使用了 -x 选项,则表示解压。如果使用了 -c 选项,则表示压缩。
- -c 表示要进行打包动作。
- -x 表示要进行拆包动作。
- -v 表示在打包过程中直播整个过程,把已打包的文件显示出来。
- -f 表示指定要打包的文件,完全可以指定多个,文件夹和文件都可以。
- -t 表示列出打包文件中的内容,
- -k 表示保留原有文件不覆盖
[root@centos7 ~]# mkdir ./abc/aa_dir/aa1_dir
[root@centos7 ~]# touch ./abc/aa_dir/aa1_dir/a1.txt
[root@centos7 ~]# tree ./abc
./abc
├── aa_dir
│ ├── aa1_dir
│ │ └── a1.txt
│ ├── aa.txt
│ └── file3.cfg
├── bb_dir
├── file2.cfg
└── test22
├── anaconda-ks.cfg
└── test_d
5 directories, 5 files
对 aa_dir 目录下的文件操作,将文件打包之后就可以使用压缩与解压命令,最常用就是两者一起使用
1、打包和拆包
1)打包:tar -cvf FileName.tar DirName
2)拆包:tar -xvf FileName.tar
2、gzip 压缩打包和拆包解压
1)gzip 压缩打包:tar -zcvf FileName.tar.gz DirName
2)gzip 拆包解压:tar -zxvf FileName.tar.gz
3、bzip2压缩打包和拆包解压
1)bzip2 压缩打包:tar -jcvf FileName.tar.bz2 DirName
2)bzip2 拆包解压:tar -jxvf FileName.tar.bz2
4、不想拆包解压,只想看看压缩打包中的内容
gzip压缩打包文件: tar -ztvf FileName.tar.gz
bzip2压缩打包文件:tar -jtvf FileName.tar.bz2
四、zip,unzip命令
注意:压缩后保留原始文件,压缩比不如gzip,而且linux一般不用,只是作为和windows系统互联用
Centos7 没有这两个命令,需要先安装
[root@centos7 ~]# rpm -qa zip
[root@centos7 ~]# rpm -qa unzip
[root@centos7 ~]# yum list | grep "^zip"
zip.x86_64 3.0-11.el7 CentOS7
[root@centos7 ~]# yum list | grep "^unzip"
unzip.x86_64 6.0-19.el7 CentOS7
[root@centos7 ~]# yum -y install zip
[root@centos7 ~]# yum -y install unzip
语法:
压缩:zip [选项] 压缩后文件名 文件或目录
解压缩:unzip 文件名
参数:
- -v 显示指令执行过程或显示版本信息。
- -r 递归处理,将指定目录下的所有文件和子目录一并处理。
- -t 表示列出打包文件中的内容
1、压缩和解压缩目录下的文件
2、压缩和解压缩目录下的递归文件
3、不想解压缩,只想看看压缩文件中的内容
常用解压/压缩命令总结:
gzip
压缩:gzip -v FileName
解压:gunzip -v FileName.gz 或者 gzip -dv FileName.gz
bzip2
压缩:bzip2 -v FileName
解压:bunzip2 -v FileName.bz2 或者 bzip2 -dv FileName.bz2
tar
打包:tar -cvf FileName.tar DirName
解包:tar -xvf FileName.tar
(注:tar是打包,不是压缩!)
gzip+tar
压缩打包:tar -zcvf FileName.tar.gz DirName
拆包解压:tar -zxvf FileName.tar.gz
bzip2+tar
压缩打包:
拆包解压:
zip
压缩:zip FileName.zip DirName
解压:unzip FileName.zip
# -d选项:可以指定解压到指定的目录(相对路径或者绝对路径)。
解压:unzip FileName.zip -d /var/FileName
更多命令参数选项查看帮助
站在前辈的肩膀上,每天进步一点点
ends~
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)