总结一下Linux
下的几种压缩及打包工具
compress
1 | -f 强制执行并覆盖掉原文件 |
压缩生成.Z
后缀名的文件,解压时也需要文件后缀为.Z
zip
1 | -v 显示命令执行过程 |
使用unzip
解压缩zip
压缩的文件
1 | $ zip test.zip test.txt //把test.txt压缩为test.zip,可以接更多的文件或者文件夹 |
在压缩时若不指定后缀名,则生成的压缩文件默认为.zip
,若指定了后缀名,则生成的文件名为所指定的,不会自动添加上.zip
在使用unzip
解压缩时,不需要文件的后缀名为.zip
,只需要是zip
压缩类型的文件
gzip
1 | -f 强制压缩文件 |
压缩后会生成以.gz
为后缀的文件,并且在使用gzip -d
或gunzip
命令解压文件时,文件必须为以.gz
为后缀并且是gzip
压缩类型饿文件
1 | $ gzip ./* |
假设当前目录下有test1 test2
两个文件,则这条命令会将这两个文件压缩为test1.gz test2.gz
bzip2
1 | -c 将压缩与解压缩的结果输出到标准输出 |
压缩后会生成以.bz2
为后缀的文件,使用bzip2 -d
或bunzip2
命令解压文件
1 | //假设当前目录有两个文件名为 data1 data2 |
如上述命令,解压bzip2
压缩类型文件不强制要求后缀为.bz2
。解压时,若后缀名为.bz2
,则解压后文件名为去除.bz2
的文件名,若后缀不是.bz2
,则解压后文件名为原文件名加上.out
后缀
tar
1 | -c 打包文件和目录 |
compress
、zip
、gzip
、bzip2
命令是对文件进行压缩。而tar
命令是对文件或目录进行打包操作。
1 | $ tar -cvf test.tar ./* //这里将当前目录下的所有文件和目录打包为test.tar文件 |
这里可以任意指定文件名和后缀,并不需要强制指定.tar
后缀
1 | $ tar -zcvf test.tar.gz ./* //这里将当前目录下的所有文件和目录打包为test.tar文件后又进行了gzip压缩 |
这里的文件名也是可以任意指定的,处理完成后是gzip
压缩的文件。
如果这里命名的文件名不是以.gz
为后缀,如test
,若要直接进行gunzip
解压之前必须要将文件的后缀改为test.gz
,解压后文件是名为test
的tar
归档文件,接下来可以使用tar -xvf test
来恢复。
上述两步操作也可以用tar -zxvf test
一步操作来完成
使用-Z
、-j
选项的命令与之类似