Linux下文件的打包、压缩、解压缩
概念
打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件
其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另外的工具将这一大堆文件先打 成一个包,然后再就原来的压缩程序进行压缩。
Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了
Linux系统下压缩文件的类型:
它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名
tar打包
tar的打包解包基本用法
#tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解包的意思
压缩用法
zip
压缩: zip [参数] [压缩文件名][源文件]
解压:unzip [参数][压缩文件名]
# zip all.zip *.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
注意:如果要压缩的是个文件夹,则要加上-r参数,表示调用递归压缩,如:
zip -r temp.zip temp
# unzip all.zip
这条命令是将all.zip中的所有文件解压出来
rar
# rar a all *.jpg
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar 扩展名将自动附加到包名后。
# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来
gzip压缩
gzip压缩式不会暂用太多cpu,推荐这种压缩格式
gzip 【参数】【文件或目录】
eg:
压缩打包文件:gzip test.tar 执行后将产生test.tar.gz
解压:gzip -d file.gz
tar.gz
tar.gz:先打包在用gzip压缩,推荐这种打包格式
eg:
压缩:
tar -zcvf file.tar.gz d1
解压缩:
tar -zxvf file.tar.gz 解压到当前目录
tar -zxvf file.tar.gz -c /tmp/x/hcf 解压到指定目录
打包实例:
打包:
tar cvf f.tar hcf
解包:
tar xvf f.tar
单个文件压缩打包:
tar czvf my.tar.gz file1.txt
多个文件压缩打包:
tar czvf my.tar.gz file1.txt file2.txt file3.txt(也可将多个 file文件移动到一个目录在压缩)
单个 目录压缩打包:
tar czvf my.tar.gz d1
多个目录压缩打包:
tar czvf my.tar.gz d1 d2 d3
解包到当前目录:
tar xzvf my.tar.gz