Linux下的压缩解压缩操作总结

分类:计算机 | 操作系统 | Linux | 压缩解压缩 499
更新:2021-02-01 22:28:27
编辑

1 为何linux要用tar.gz,而不用7z或zip

因为 7z 和 zip 压缩格式都不能保留 unix 风格的文件权限,比如解压出个可执行文件要重新 chmod chown 才能恢复正常。而 tar 格式可以。而 tar 本身不提供压缩,无非就是把包括所有文件的內容和权限拼成一个文件而己,所以用另外如 gzip 格式压缩。为什么是 gzip,因为几乎所有 linux 都支持而已。

2 zip格式

2.1 压缩zip文件

命令语法:

zip [参数] [打包后的文件名] [打包的目录路径]

zip命令参数列表:

  1. -a 将文件转成ASCII模式
  2. -F 尝试修复损坏的压缩文件
  3. -h 显示帮助界面
  4. -m 将文件压缩之后,删除源文件
  5. -n 特定字符串 不压缩具有特定字尾字符串的文件
  6. -o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
  7. -q 安静模式,在压缩的时候不显示指令的执行过程
  8. -r 将指定的目录下的所有子目录以及文件一起处理
  9. -S 包含系统文件和隐含文件(S是大写)
  10. -t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy

示例:

zip -r mysoft.zip ./mysoft

将当前路径下的mysoft文件夹打包成mysoft.zip

2.2 解压缩zip文件

进入zip文件所在目录,执行命令:unzip xxx.zip,但是发现这样解压缩的文件中有乱码现象,这是因为Windows下生成的zip文件中的编码是GBK/GB2312等,而linux下的默认编码格式为UTF-8,所以才会出现乱码。 解决方法:

  1. 通过unzip行命令解压,指定字符集:
    unzip -O CP936 xxx.zip(用GBKGB18030也可以)
    
  2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件: 在/etc/environment中加入2行
    UNZIP=”-O CP936”
    ZIPINFO=”-O CP936”
    

2.3 解压分卷压缩的zip文件

由于文件大小限制,先对文件进行了100MB的分卷压缩(比如用360压缩),得到文件:test.zip.001、test.zip.002、test.zip.003。上传到linux系统后,对文件进行解压:

  1. 先合并文件:
    cat test.* > testall.zip
    
  2. 然后解压zip文件:
    unzip -O CP936 testall.zip
    

3 tar格式

3.1 压缩

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

3.2 解压缩

tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar -xZvf file.tar.Z   //解压tar.Z

4 tar.gz格式

4.1 压缩命令

命令格式:tar -zcvf 压缩文件名.tar.gz 被压缩文件名
可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径。

4.2 解压缩命令

命令格式:tar -zxvf 压缩文件名.tar.gz

解压缩后的文件放在当前的目录,如果想要将文件解压到指定的目录下面,可以使用如下命令:

tar -zxvf xxx.tar.gz -C /usr/local

命令中加了一个-C,可以将文件解压到/usr/local中。

5 7z格式

5.1 centos下7z文件的解压方法

安装7z工具

yum install p7zip -y

解压7z

7za x file.7z

5.2 ubuntu下7z文件的解压方法

安装7z工具

apt-get install p7zip-full

解压7z

7z x file.7z