打包压缩

压缩和解压缩

除了 zip,所有的压缩都是压缩文件,不能打包目录。

.Z

压缩 compress

1
compress file

解压缩 uncompress

1
uncompress file.Z

.gz

压缩 gzip

1
gzip file

解压缩 gunzip

1
gunzip file.gz

.bz2

压缩 bzip2

1
bzip2 file

解压 bunzip2

1
bunzip2 file.bz2

.xz

压缩 xz

1
xz file

解压 unxz

1
unxz file.xz

.zip

压缩 zip

1
2
# 需要指定压缩后的名称file.zip
zip file.zip file

解压 unzip

1
2
# 如果解压的是文件,不是目录,需要指定解压后的名称file
unzip file.zip file

打包目录并压缩 zip -r

1
zip -r dir.zip dir

解压目录 unzip

1
2
3
4
# 解压目录可以指定解压后的名称,也可以不指定
unzip dir.zip
# 或
unzip dir.zip dir

打包和解包

tar

tar 即 Tape ARchive 磁带归档,可以对目录和多个文件打包一个文件,并且可以压缩,保留文件属性不丢失,常用于备份功能,推荐使用

对应格式是.tar

结合压缩工具,实现打包并压缩

  • -z gzip .tar.gz
  • -j bzip2 .tar.bz2
  • -J xz .tar.xz

打包

1
2
3
4
tar cvf dir.tar dir
tar zcvf dir.tar.gz dir
tar jcvf dir.tar.bz2 dir
tar Jcvf dir.tar.xz dir

解包

1
2
3
4
tar -xvf dir.tar
tar -zxvf dir.tar.gz
tar -jxvf dir.tar.bz2
tar -Jxvf dir.tar.xz

split

split 命令可以分割一个文件为多个文件

切割

1
2
3
4
5
6
#分割大的 tar 文件为多份小文件
split -b Size –d tar-file-name prefix-name

split -b 1M mybackup.tgz mybackup-parts
#切换成的多个小分文件使用数字后缀
split -b 1M –d mybackup.tgz mybackup-parts

合并

1
cat mybackup-parts* > mybackup.tar.gz

cpio

cpio 是历史悠久的打包和解包工具,不过目前很少使用了