To Be An Artist Engineer.

0%

Linux压缩与解压缩指令

一、文件压缩

Linux中常见的文件压缩算法有三种:gzip bzip2 xz ,它们的压缩率逐渐上升,但是压缩耗时也逐渐增加。

  1. gzip

压缩命令:gzip -9 -c filename > filename.gz

-9表示压缩比,理论上可以指定1-9,默认为6

解压命令:gzip -d filename.gz

查看命令:zcat filename.gz

  1. bzip2

压缩命令:bzip2 -9 -c filename > filename.bz2

-9表示压缩比,理论上可以指定1-9,默认为6

解压命令:bzip2 -d filename.bz2

查看命令:bzcat filename.bz2

  1. xz

压缩命令:xz -9 -c filename > filename.xz

-9表示压缩比,理论上可以指定1-9,默认为6

保留原文件名压缩指令: xz -k filename , 该命令等价于xz -c filename > filename.xz

解压命令:xz -d filename.xz

查看命令:xzcat filename.xz

二、目录压缩

压缩: tar [压缩算法] -c -v -f filename.tar.[压缩后缀] --exclude=filepath/a --exclude=filepath/b

[压缩算法]指的就是gzip,bzip2,xz三种之一,分别对应-z, -j , -J , 三者只能取一个或者不指定。

[压缩后缀]要和压缩算法一致,取gz,bz2,xz其中之一。如果不指定压缩后缀则称生成文件为tarfile, 指定了则称之为tarball

–exclude指定目录里的哪些文件不压缩到文件中

查看: tar -t -v -f filename.tar.[压缩后缀]

解压缩:tar -x -v -f filename.tar.[压缩后缀] -C [目录名称] ,如果不指定-C则解压缩到当前目录

利用管线命令与资料流复制
1
2
cd destDir
tar -cvf - sourcedir | tar -xvf -

利用上述命令可以快速把源目录的文件复制到目标目录,这里的 - 可以看成是内存中的一块缓存区域,即先把源文件压缩写入该缓存,再从该缓存输出到目标目录