一、文件压缩
Linux中常见的文件压缩算法有三种:gzip
bzip2
xz
,它们的压缩率逐渐上升,但是压缩耗时也逐渐增加。
- gzip
压缩命令:gzip -9 -c filename > filename.gz
-9表示压缩比,理论上可以指定1-9,默认为6
解压命令:gzip -d filename.gz
查看命令:zcat filename.gz
- bzip2
压缩命令:bzip2 -9 -c filename > filename.bz2
-9表示压缩比,理论上可以指定1-9,默认为6
解压命令:bzip2 -d filename.bz2
查看命令:bzcat filename.bz2
- 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 | cd destDir |
利用上述命令可以快速把源目录的文件复制到目标目录,这里的 -
可以看成是内存中的一块缓存区域,即先把源文件压缩写入该缓存,再从该缓存输出到目标目录