Linux文件打包
Posted 香饼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件打包相关的知识,希望对你有一定的参考价值。
一、文件打包、压缩与解压
linux常见的打包工具莫过于zip,gzip,bzip2,tar。我们可以根据需要的打包格式相对应的使用。
1、zip命令(.zip文件)
语法:zip 压缩名 文件名
-r选项:多个文件压缩
-o选项:不提示的情况下覆盖文件;
-d选项:指定解压缩路径
zipinfo:查看内容
(1)压缩文件:zip -r myfile.zip
将当前目录下的所有文件和目录全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
(2)解压文件:unzip
unzip -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
(3)其他
查看压缩文件中的文件
zipinfo myfile.zip
向压缩文件中myfile.zip中添加rpm_info.txt文件
zip -m myfile.zip ./rpm_info.txt
2、gzip命令(.gz文件)
gzip只能针对普通文件(regular file)进行压缩和解压,对于文件夹、符号链接等不支持。如果想把多个文件一起压缩并打包,gzip自身办不到的。则需要用tar命令来完成。
语法:gzip 文件名
例:把文件test1.txt打包
localhost:~ # gzip test1.txt
解压之前压缩的文件,只需加-d选项即可
localhost:~ # gzip -d test1.txt.gz
注:这里需要注意的是,gzip压缩会把源文件覆盖,这里我们可以用-c选项避免
#-c选项就是让gzip把压缩的内容输出到标准输出,而非写入到文件中。
localhost:~ # gzip -c test1.txt > test1.txt.gz
gzip与tar区别:
从大概意思来说他们都是一个打包工具,没什么区别。当我们需要打包多个文件时,就特别能体现出tar与gzip区别。
gzip:压缩/解压缩工具,当有多个文件时,gzip只能进行压缩,但不能把多个文件压缩成一个文件,特别的凌乱,这时tar就担任了这个角色。
tar:打包/解包工具,在gzip基础之上,在进行多文件打包成一个文件,管理起来比较方便。
例:对test1.txt进行打包并压缩
localhost:~ # tar -cvf test1.txt.tar.gz test1.txt
解压:
localhost:~ # tar -xvf test1.txt.tar.gz
压缩速度与解压缩强度
gzip 命令确实为用户提供了这样的选择权,包含了九个压缩级别,分别是 1、2、3、4、5、6、7、8、9:
“1 级”表示压缩速度最快,但强度不高。
“9 级”表示压缩强度最高,但速度较慢。
默认情况下是 6 级。
#我们先用“最快速”的压缩等级(1级), 同时使用time来精准计时
localhost:~ # time gzip -1 error.log
real 0m22.322s
user 0m20.983s
sys 0m1.250s
#“最快速”压缩等级, 耗时是22.3秒, 压缩后的大小为99MB
localhost:~ # ls -hl error.log.gz
-rw-r--r-- 1 roc roc 99M 2月 20 14:39 error.log.gz
#然后我们再尝试“最强”压缩等级(9级), 同样也使用time来精准计时
localhost:~ # time gzip -9 error.log
real 1m3.544s
user 1m2.189s
sys 0m1.256s
#“最强”压缩等级, 耗时变长了许多, 为1分3秒, 但压缩后的文件却是更小了, 为70MB
localhost:~ # ls -hl error.log.gz
-rw-r--r-- 1 roc roc 70M 2月 20 14:39 error.log.gz
3、bzip2命令(.bz2文件)
bzip2/bunzip2(压缩/解压缩)
语法:bzip2 文件名
localhost:~ # bzip2 test1.txt 压缩
localhost:~ # bunzip2 test1.txt.bz2 解压缩
多个文件压缩
localhost:~ # bzip2 test1.txt test2.txt test3.txt
注:gzip2压缩时也会覆盖源文件,-c可以避免,与gzip语法一样
4、tar包管理工具简介
TAR(Tape Archive,TAR)是Linux下的包管理工具,具有5种功能:打包、查询、释放、更新、追加。
命令格式:tar [主选项+辅助选项] [文件或目录]
选项 |
说明 |
-c |
创建新的tar包 |
-t |
列出tar包文件的列表 |
-x |
从tar包中释放文件 |
-r |
把备份文件追加到已备份文件的末尾 |
辅助选项 |
说明 |
-f |
选择文件或设备,必选项 |
-v |
显示命令执行的详细信息 |
-z |
用gzip来压缩/解压缩文件 |
-j |
用bzip2来压缩/解压缩文件 |
-C |
指定文件解压后的存放路径 |
对文件进行打包:tar -cf xx.tar files.txt sdb1.txt
列出tar包文件包含的文件:tar -tf xx.tar
解包到当前目录:tar -xf xx.tar -C ./
压缩为gzip: tar -zcf yy.gz files.txt sdb1.txt
压缩为bzip2:tar -jcf yy.bz2 files.txt sdb1.txt
除了以上几种打包工具,我们也可以自己添加
rar命令
下载rarlinux-x64-5.7.1.tar.gz:https://www.rarlab.com/download.htm
解压后将rar文件到/usr/local目录下:tar -xf rarlinux-x64-5.7.1.tar.gz -C usr/local/
然后执行以下命令
ln -s /usr/local/rar/rar /usr/local/bin/rar
ln -s /usr/local/rar/unrar /usr/local/bin/unrar
压缩文件:rar a test.rar ./test/
列出压缩文件:rar l test.rar
解压文件:rar x test.rar ./
以上是关于Linux文件打包的主要内容,如果未能解决你的问题,请参考以下文章