zip
zip -r xxx.zip ./*
unzip filename
unzip
解压时指定字符集
解压windows下压缩的zip包:
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)
gzip
-a或--ascii 使用ASCII文字模式。
-d或--decompress或----uncompress 解开压缩文件。
-l或--list 列出压缩文件的相关信息。
-r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
gzip不能压缩目录想要压缩目录可以使用如下方式:tar -zcvf test.tar.gz test
GZIP 与zip区别主要是适应系统不同,还有就是压缩率不一样;
gzip为高压,可以把文件压缩得更小gzip是Linux下面用的格式,一般在Linux下解压,如果用Windows下的程序解压有可能丢失其中某些文件或属性
解压指定编码
乱码场景:zip是在windows下面打包的,压缩时的编码默认是GBK在LINUX上解压,用的是UTF-8
gzip -O "GBK" xxx.zip
tar
命令含义
- 打包:将一堆文件或目录什么的变成一个总的文件。
- 压缩:将一个大的文件经过某种压缩算法变成一个小文件。
为什么要区分这两个概念呢?因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。tar是打包,gzip、bzip2 是压缩,tar可以在打包后同时调用其他压缩命令。
为了方便用户在打包解包的同时压缩或解压文件,tar命令提供了一种特殊的功能,就是可以在打包解包的同时调用其他的压缩程序,比如:gzip,bzip2等。
使用
-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
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包中所有文件,-t是解开的意思
压缩
tar -cvf jpg.tar *.jpg
//将目录里所有jpg文件打包成jpg.tar
tar -czf jpg.tar.gz *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z