一、tar,tar.gz 格式
-c 建立新的压缩文件 -r 添加文件到已经压缩的文件 -u 添加改变了和现有的文件到已经存在的压缩文件 -x 从压缩的文件中提取文件 -t 显示压缩文件的内容 -z 支持gzip解压文件 -j 支持bzip2解压文件 -v 显示操作过程 -k 保留源有文件不覆盖 -C 切换到指定目录 -f 指定压缩文件 --delete 删除包中文件 --strip-components 去除目录 --add-file 向包中添加文件
tar,tar.gz 压缩
tar -zcvf test.tar test1.log test2.log #归档并以gzip压缩多个文件 tar -zcvf test.tar test/* #归档并以gzip压缩test目录下所有文件 tar -zcvf test.tar *.log #归档并以gzip压缩所有以.log结尾的文件 tar -zcvf test.tar * #归档并以gzip压缩当前文件夹下的所有文件 tar -zcvf test.tar ./* #归档并以gzip压缩当前文件夹下的所有文件,并创建目录. tar -jcvf test.tar.bz2 * #归档并以bzip2压缩 tar -tvf test.tar #不解压,只是查看压缩包中的文件内容,可以使用-t参数
tar,tar.gz 解压
tar -xvf test.tar.gz #解压到当前目录,不创建test目录 tar -xvf test.tar #解压到当前目录,不创建test目录 tar -xvf test.tar.gz -C test2 #解压包中指定的文件到test2目录,要先创建test2目录 tar -xvf test.tar -C test2 #解压包中指定的文件到test2目录,要先创建test2目录 tar -xvkf test.tar.gz #当前目录可能已经存在包中的文件,如果不想解压出来的文件覆盖当前已存在的文件,可使用-k参数(会抛出错误信息)
解压或者压缩带的f参数需要放在最后,因为它指定了压缩包名字,否则会出现解压或压缩失败。
二、zip 格式
zip 压缩
-d 从压缩文件内删除指定的文件。 -f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。 -j 只保存文件名称及其内容,而不存放任何目录名称。 -r 递归处理,将指定目录下的所有文件和子目录一并处理。 -u 更换较新的文件到压缩文件内。 -v 显示指令执行过程或显示版本信息。 -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。 - <压缩效率> 压缩效率是一个介于1-9的数值。
压缩test.zip示例
zip -r test.zip test/ #打包test目录下的文件 zip -rj test.zip test/ #打包test目录下文件,且压缩包不带test目录 zip -r8 test.zip * #指定压缩率,数值(1-9)越大,压缩率越高,耗时越长 zip -r test.zip test1 test -P 123456 #使用密码123456加密
zip 解压
-l 显示压缩文件内所包含的文件 -j 只保存文件名称及其内容,而不存放任何目录名称。 -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该 -v 显示指令执行过程或显示版本信息。 -d 指定解压目录,目录不存在会创建
解压test.zip示例
unzip -l test.zip #可以看到压缩包中的文件名,日期等信息 unzip -v test.zip #查看更多信息,例如crc校验信息等 unzip -o test.zip -d test2 #将test.zip解压到test2目录
解压jar unzip -o java.jar -d test2 #将java.jar解压到test2目录
三、gzip 格式
-k 保留源文件 -d 解开压缩文件 -r 递归处理,将指定目录下的所有文件及子目录一并处理 -v 显示指令执行过程
gzip -k ./* //当前目录下所有文件进行压缩,每个文件一个gz包 gzip -rkv ./* //递归压缩 gzip -dv test.gz //解压缩
四、bzip2 格式
bzip2 -zk test #压缩test文件 bzip2 -dk test.bz2 #解压
五、rar 格式
rar a test.tar test #将test文件压缩为test.tar rar e test.rar #解压test.tar unrar x test.rar #解压test.tar