总结一下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选项的命令与之类似