您的位置:首页 > 运维架构 > Linux

linux下的几个归档和压缩工具

2016-04-29 17:42 423 查看
归档和压缩是不同的概念,归档就是把一些文件包括文件夹打包放在一个归档文件中;压缩主要是针对一个文件,就是把一个文件进行压缩以便减少其在磁盘上占用的空间。

filename.tar 归档文件(并没有进行压缩)

filename.tar.gz 归档压缩文件(先归档成.tar文件,再进行gzip压缩)

归档工具:tar

压缩和解压缩工具(括号中代表后缀名):gzip/gunzip(.gz);    bzip2/bunzip2(.bz2);    lzma/unlzma(.lzma);

归档压缩工具:zip/unzip(.zip)

tar 命令

常用选项组合: -cf,  -cvf,  -cvvf,  -tf,  -tvf, -rvf,  -xf, -xvf, -Af, --delete,  --exclude, -zcvf, -zxvf, -jcvf,  -jxvf

tar -cf filename.tar file1 file2 folder1代表将file1 file2 folder1归档成filename.tar文件。-c代表创建归档文件,-f后面指定归档后的文件名(指定要进行归档的文件名的时候可以用*通配符,比如要归档所有后缀名为txt的文件,则可以用 tar -cf filename.tar *.txt)

换成-cvf选项的话会在归档过程中列出所有归档的文件名,如果想看到详细的文件信息则可使用-cvvf(前面是一个v,这里是2个v)

tar -tf filename.tar 可以查看归档文件中有哪些文件,如果想查看详细的文件信息可以使用-tvf选项

tar -rvf filename.tar newfile 表示往filename.tar归档文件中添加新的文件 -r选项代表追加

tar -xf filename.tar 代表从归档文件中提取文件到当前目录,如果要在提取过程中显示提取的文件名称则用-xvf,要现实文件详细信息则可用-xvvf,如果要将文件抽取到指定的目录则用-C选项,即 tar -xf filename.tar -C /path/to/destination_directory

如果要将一个归档文件中的所有文件添加到另一个归档文件中则可使用-A选项:tar -Af filename1.tar filename2.tar则会将filename2.tar归档文件中的所有文件添加到filename1.tar中。

如果要从归档文件中删除文件则可使用--delete选项:tar -f filename.tar --delete file1 会从filename.tar中删除file1文件。

如果要在归档的过程中排除某些文件,则可使用--exclude选项:tar -cf filename.tar * --exclude "*.txt" 归档当前目录下的所有文件但是排除后缀名是.txt的文件。

如果要在归档之后进行压缩的话,可以分别加上-z(gzip压缩),-j(bzip2压缩),--lzma(lzma压缩)

如: tar -zcvf filename.tar.gz *.txt 将当前目录下所有以txt为后缀名的文件进行归档并压缩成gzip格式。或者 tar -jcvf filename.tar.bz2 *.txt 或 tar --lzma -cvf filename.tar.lzma *.txt

也可以不分别指定-z,-j或者--lzma,而是采用-a选项,这会根据-f后面的文件名后缀来自动选择压缩的格式。如:tar -acvf filename.tar.gz *.txt 会自动采用gzip格式进行压缩。

相对应的也会有-zxvf, -jxvf, --lzma -xvf等解压缩并提取文件的选项。

gzip filename命令会生成filename.gz的压缩文件(同时删除原文件)

gunzip filename.gz会将压缩文件解压为filename文件(同时删除.gz文件)

gzip -l filename.gz 会列出压缩文件的属性信息,包括压缩后大小,压缩前大小,压缩率,压缩前文件名称

zcat 命令无需解压缩直接读取.gz格式的文件

zcat filename.gz 相当于cat filename,但是不进行解压

bzip2/bunzip2与gzip/gunzip用法类似,据说比gzip压缩效率更高(实际效果可能跟压缩文件的类型或者大小有关吧),后缀名为.bz2

lzma/unlzma据说效率比前两种更好。后缀名为.lzma

以上三种压缩工具均会删除原文件(压缩完之后会删除原文件,解压完会删除压缩文件)

zip是一种压缩归档工具,既归档又压缩。而且与上面三种压缩工具不同的是zip/unzip并不会删除原来的文件或者原来的.zip压缩文件

zip file.zip file1 file2 将file1,file2归档压缩成file.zip

zip -r file.zip folder1 folder -r代表对目录进行递归操作

zip file.zip -u newfile 更新压缩文件中的内容

zip -d file.zip file1 从file.zip中删除file文件

unzip -l file.zip 列出压缩文件中的内容 (注意是unzip不是zip -l file.zip)

如有不当之处,还望指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  压缩 归档 linux命令