打包压缩与解压缩

打包与压缩

windows常见压缩文件格式:.rar .zip .7z

Linux常见压缩文件格式 :.tar.gz; .tar.bz2; .tgz; tbz2

在linux系统中,文件的格式与后缀名没有关系,一般压缩工具压缩之后会在压缩文件后添加对应压缩工具的后缀名

在Windows中,打包与压缩是一个软件功能,但是在Linux中,它是由两个软件构成的

打包命令

Linux早期的打包命令其实是备份命令,备份的介质是磁带,使用的命令是 tar

可以对打包后的磁带文件进行压缩存储,压缩的命令是 gzip 和 bzip2,所以我们可以看到,打包和压缩的命令是分开的

tar命令打包的使用方法:tar [选项] 打包后的文件名 要打包的文件

注意:tar命令

使用tar命令需要了解它的选项,来帮助我们完成打包过程,常用的选项如下:

c

建立压缩档案,及打包必须的参数

f

打包成文件并指定文件名称,切记,这个参数是最后一个参数,后面只能接文件名

使用示例:

1
2
3
root@CHJ-20190520VPS:/# tar cf /tmp/etc-backup.tar /etc
tar: Removing leading `/' from member names
root@CHJ-20190520VPS:/#

如上示例中,我们将 /etc 目录打包成文件,放置在 /tmp 目录下,并指定打包后的文件名称为 etc-backup.tar ,执行命令后提示会把根目录开头的斜杠 “/“ 去掉,方便我们在解包的时候可以解压到任何目录

压缩命令

单纯的打包的打包后的文件一般都很大,因为他并没有做过压缩,一般我们都会在存储的时候进行压缩,如上述打包文件的大小:

1
2
root@CHJ-20190520VPS:/# ls -lh /tmp/etc-backup.tar
-rw-r--r-- 1 root root 2.7M Jul 17 20:11 /tmp/etc-backup.tar

通常使用的压缩命令有 gzip bzip2

使用方法如下:

gzip [文件名]

bzip2 [文件名]

1
2
3
4
root@CHJ-20190520VPS:/# gzip /tmp/etc-backup.tar
root@CHJ-20190520VPS:/# ls -lh /tmp
total 488K
-rw-r--r-- 1 root root 459K Jul 17 20:40 etc-backup.tar.gz

在我们使用tar命令的时候,其实已经把这两个命令集成进去了,只需要使用的时候添加参数就可以完成压缩解压缩,下面介绍使用此两个压缩命令的tar选项:

z

打包文件并使用gzip压缩文件

j

打包文件并使用bzip2压缩文件

一般在使用打包和压缩命令时,为了方便人看到压缩文件是使用哪种压缩方式压缩的文件,对压缩后的文件使用双扩展名,例如 “xxx.tar.xx”,具体使用如下:

1
2
3
4
5
6
7
8
9
10
tar: Removing leading `/' from member names
root@CHJ-20190520VPS:/# tar czf /tmp/etc-backup.tar.gz /etc
tar: Removing leading `/' from member names
root@CHJ-20190520VPS:/# ls -lh /tmp
total 1.0M
drwxr-xr-x 1 root root 4.0K Jul 13 18:34 a
-rw-r--r-- 1 root root 437K Jul 17 20:35 etc-backup.tar.bz2
-rw-r--r-- 1 root root 459K Jul 17 20:35 etc-backup.tar.gz
-rw-r--r-- 1 root root 551 Jul 14 14:03 testtext
root@CHJ-20190520VPS:/#

虽然压缩后的文件都不大,但是能感觉到使用 bzip2 压缩用的时间明显能更长一点,但是 bzip2 压缩后的文件更小一些,因为 bzip2 压缩后的比例更高一些

两种压缩方式都可以,如果我们希望压缩后的比例更高一下,就使用bzip2进行压缩

解压缩命令

解压缩我们使用的命令还是 tar 命令,但是需要更换选项

使用方法:tar [参数] 压缩文件 [-C] [解压后目录]

常用选项说明:

x

与上述 c 命令对应,x 参数是解压缩参数

f

与上述一致

v

显示所有进程,及压缩或解压明细

C

注意:C是大写,此选项是可以指定解压后的目录地址

使用示例:

1
2
3
4
5
root@CHJ-20190520VPS:/# ls /tmp
etc-backup.tar etc-backup.tar.gz testtext
root@CHJ-20190520VPS:/# tar xf /tmp/etc-backup.tar -C /root
root@CHJ-20190520VPS:/# ls /root
etc

将/tmp/etc-backup.tar压缩文件解压到 /root 目录下

实际我们见到的很多的压缩文件是 .tbz2 .tgz 的文件,这两种其实是 .tar.bz2 .tar.gz 的缩写,为了方便网络上的传播,将双扩展名的文件进行的缩写

解压我们不需要因为压缩软件的不同而使用不同的选项,只使用标准的 tar 解压就可以,如下:

1
2
3
4
5
6
7
8
root@CHJ-20190520VPS:/# ls /tmp
etc-backup.tar etc-backup.tar.gz testtext
root@CHJ-20190520VPS:/# tar -xvf /tmp/etc-backup.tar.gz -C /root
etc/
etc/.pwd.lock
...... 解压文件明细
root@CHJ-20190520VPS:/# ls /root
etc

最后更新: 2019年07月18日 20:48

原始链接: https://jjw-story.github.io/2019/07/17/打包压缩与解压缩/

× 请我吃糖~
打赏二维码