压缩和解压缩
为什么需要这部分?因为在工作中我们使用更多的是命令行处理。不可能把文档发到自己电脑上压缩后再上传上去,这对数据来说是十分危险的。所以为了数据安全也为了审计方便,我们将使用命令行来完成压缩和解压缩
注:Linux上的压缩工具只会压缩文件,不会压缩目录。如果想压缩目录需要先打包
zip可以直接压缩目录,但会丢失目录权限,元数据等信息
压缩率排行: xz > bzip2 > gzip > zip > compress
compress 和 uncompress
注:此工具来自于ncompress包,此工具目前以及很少使用
对应的文件是.Z后缀
1 2 3 4 5 6 7 8 9 10 11
| compress [选项] [文件名]
uncompress [选项] [文件名]
-d -c -f -v -r
|
gzip 和 gunzip
来自于 gzip 包
对应的文件是.gz后缀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| gzip [选项] [文件名]
gunzip [选项] [文件名]
-c|--stdout -d|--decompress -f|--force -k|--keep -l|--list -q|--quiet -r|--recursive -S|--suffix=SUF -t|--test -v|--verbose -1|--fast -9|--best -N
|
bzip2 和 bunzip2
来自于 bzip2 包
对应的文件是.bz2后缀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| bzip2 [选项] [文件名]
bunzip2 [选项] [文件名]
-d|--decompress -z|--compress -k|--keep -f|--force -t|--test -c|--stdout -q|--quiet -v|--verbose -N --fast --best
|
xz 和 unxz
来自于 xz 包
对应的文件是 .xz 后缀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| xz [选项] [文件名]
unxz [选项] [文件名]
-z|--compress -d|--decompress -t|--test -l|--list -k|--keep -f|--force -c|--stdout -T|--threads=NUM -q|--quiet -v|--verbose -N
|
zip 和 unzip
zip 可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息,比如所有者和组信息
分别来自于 zip 和 unzip 包
对应的文件是 .zip 后缀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| zip [选项] [压缩包输出目录] [压缩的文件目录]
unzip [选项] [压缩包路径] [解压文件路径]
-f -u -d -m -r -j -l -1 -9 -q -v -c -z -x -i -D -T -X -y -n -P
-p -l -t -z -v -x -d -n -q -o -a -j -C -L -X -V -K -M
|
zcat
zcat 是”zip cat”的缩写,用于在不解压的情况下查看压缩文件内容
1 2 3 4 5 6 7 8
| zcat [选项] [参数]
-c -d -l -r -t
|
打包和解包
打包的目的是保留Linux系统的文件权限以及所有者等信息。便于对文件进行转移
tar
命令tar即 Tape ARchive 磁带归档,可以对目录和多个文件打包成一个文件进行归档
其本身不具备压缩功能,但可以使用参数调用相应的压缩命令进行压缩
此命令可以保留文件属性,推荐Linux更多使用该方法打包文件
对应的文件后缀是.tar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| tar [选项] [文件]
-A|--catenate|--concatenate -c|--create -d|--diff|--compare --delete -r|--append -t|--list --test-label -u|--update -x|--extract|--get
-f|--file=ARCHIVE
|
注:选项-v可以不带,带了会显示详细信息。但一般不会看这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
1.打包压缩
tar -zcvf 压缩包名.tar.gz 要压缩的文件或目录
tar -jcvf 压缩包名.tar.bz2 要压缩的文件或目录
tar -Jcvf 压缩包名.tar.xz 要压缩的文件或目录
2.仅打包不压缩 tar -cvf 打包名.tar 要打包的文件或目录
3.查看包内容 tar -tvf 包文件名
4.解压包 tar -xvf 压缩包名
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| -G|--incremental -n|--seek -S|--sparse -k|--keep-old-files -U|--unlink-first -W|--verify -O|--to-stdout --to-command=COMMAND -m|--touch -p|--preserve-permissions|--same-permissions -s|--preserve-order|--same-order -M|--multi-volume -B|--read-full-records -i|--ignore-zeros -a|--auto-compress -j|--bzip2 -J|--xz --lzip|--lzma|--lzop -z|--gzip|--gunzip|--ungzip -Z|--compress|--uncompress -h|--dereference --hard-dereference -P|--absolute-names -l|--check-links -R|--block-number -v|--verbose -w|--interactive|--confirmation -o
|
1 2 3 4 5 6 7
| --show-defaults --exclude -C|--directory=DIR -T|--files-from=FILE -X|--exclude-from=FILE --version
|
split
命令split是一个分割工具。主要用于将一个tar.gz包切成多个小分。在如今借助网络资源传输时偶尔会碰到单个文件最大大小限制,这时候就得用到split了
1 2 3 4 5 6 7 8
| split [选项] [文件]
-b|--bytes=SIZE -C|--line-bytes=SIZE -d -l|--lines=NUMBER --verbose
|