linux系统打包和压缩文件,Linux文件与文件系统的压缩与打包

进来在学习Linux了,不过Linux的命令太多了,怕记不住所以使用博客记录的方式来写下自己的学习过程,以后忘记了还可以翻阅自己写下的博客来查查:

Linux系统常见的压缩命令

Compress

gzip,gcat

bzip2,bzcat

打包命令:tar

Linux系统常见的压缩命令

Linux的环境下,压缩文件大多扩展名是*.tar, *.tar,*.gz, *.tgz, *.gz, *.Z, *.bz2,下面我们列出常见的压缩文件扩展名:

*.Z—————>compress程序压缩文件

*.gz—————>gzip程序压缩的文件

*.bz2————–>bzip2程序压缩的文件

*.tar—————>tar程序打包的数据,并没有进行压缩

*.tar.gz————>tar程序打包的文件,并且经过gzip进行压缩处理。

*.tar.bz2———–>tar程序打包的文件,并且经过bzip2进行压缩处理。

Linux系统常见的压缩命令就是gzip与bzip2,至于compress已经不再流行了。gzip是由GNU计划所开发出来的压缩命令,该命令已经替换了compress。后来GNU有开发出bzip2这个压缩比更好的压缩命令。不过这些命令通常只能针对一个文件来压缩与解压缩,如此一来,每次压缩都要一大堆文件,岂不是很烦人?此时打包软件tar就很重要了。

Compress

compress已经非常老旧了,不过学习练练手还是可以的。现在的Linux distribution似乎已经没有默认安装了,所以练手时可以安装ncompress这个软件。

3c1d3aad74c409445c2b5415d915c904.png

我这里提示我已经安装好了,所以基本上没有做什么处理,如果第一次安装的话可能需要你输入y,之后继续安装。

接下来看看如何使用compress命令。

[root@www ~]#compress [-rcv] 文件或目录 <==这里指压缩

[root@www ~]#uncompress 文件名.Z <==这里指解压缩

选项与参数:

-r : 可以连同目录下的文件也同时给予压缩。-c : 将压缩数据输出成为standard output(输出到屏幕)-v : 可以显示压缩后的文件信息以及压缩过程中的文件信息

compress压缩文件

53f0fe75ee33431ae99a1a08993f2ea6.png

compress解压缩文件

5e4454cf3310cd6a0e42c3a323e111cd.png

解压缩之后会发现man_db.conf.Z文件没有,如果你想要保存该文件可以使用-c的语法。

gzip,zcat

gzip是使用最广的压缩命令了。目前gzip可以解压compress、zip与gzip等压缩软件所压缩的文件。接下来看下语法:

[root@www ~]#gzip [-cdtv#] 文件名

[root@www ~]#zcat 文件名.gz

参数:

-c : 将压缩的数据输出到屏幕上,可通过数据流重定向来处理;-d : 解压缩需要用到的参数;-t : 可用来校验一个压缩文件的一致性,看看文件是否有错误;-v : 显示原文件/压缩文件的压缩比等信息;-# : 压缩等级,-1最快,但其压缩比较差,-9最慢,但压缩比最好,默认-6.

gzip压缩文件

544d3b6d13e960e35629ea4dbb8ec4a3.png

zcat读取压缩文件内容

7f136b923a988ce59e228a9589af5a1e.png

gzip解压缩文件

a6d8c78a0dea2b35f64fc1f05e9a2bc7.png

bzip2,bzcat

gzip是为了替代compress而成立的,而bzip2则是为了取代gzip并提供更佳的压缩比而来的,下面来说下具体的用法:

[root@www ~]#bzip2[-cdkzv#] 文件名

[root@www ~]#bzcat 文件名.bz2

参数:

-c : 将压缩的数据输出到屏幕上;-d : 解压缩需要用到的参数;-k : 保留原文件,而不会删除原始的文件;-z : 压缩的参数;-v : 显示原文件/压缩文件的压缩比等信息;-# : 压缩等级,-1最快,但其压缩比较差,-9最慢,但压缩比最好.

2a6f0667dffaf31d3649267e33be8d39.png

51819635030ce6847cbab8aff0bb90dd.png

打包命令:tar

虽然gzip与bzip2也能针对目录来进行压缩,不过这两个目录的压缩指的是将目录内的所有文件“分别”进行压缩的操作。

这种将多个文件或目录包成一个大文件的命令功能,我们可以称呼它是一种“打包命令”。Linux下面就是鼎鼎大名的tar。tar可以将多个目录或文件打包成一个大文件,同时还可以通过gzip/bzip2的支持,将该文件同时进行压缩。

tar的参数非常多,我们只讲几个常用的参数,更多参数可以自行man tar查询。

[root@www ~]#tar [-j|-z] [cv] [-f 新建的文件名] filename... <==打包与压缩

[root@www ~]#tar [-j|-z][tv] [-f 新建的文件名] <==查看文件名

[root@www ~]#tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录] <==解压缩

参数:

-c : 新建打包文件,可搭配-v来查看过程中被打包的文件名(filename).-t : 查看打包文件的内容含有哪些文件名,重点在查看文件名.-x : 解打包或解压缩的功能,可以搭配-C(大写)在特别目录中解开.特别留意的是,-c,-t,-x不可同时出现在一串命令行中.-j : 通过bzip2的支持进行压缩/解压缩,此时文件名最好是*.tar.bz2.-z : 通过gzip的支持进行压缩/解压缩,此时文件名最好是*.tar.gz.-v : 在压缩/解压缩的过程中,将正在处理的文件名显示出来.-f filename : -f后面要接被处理的文件名。建议-f单独写一个参数。-C 目录 : 这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数.-p : 保留备份数据的原本权限与属性,通常用于备份(-c)重要的配置文件.-P : 保留决定路径,即允许备份数据中含有根目录存在之意.--exclude=FILE : 在压缩的过程中,不要将FILE打包.

其实最简单的使用tar就只要记忆下面的方式即可:

- 压缩 : tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称。

- 查询 : tar -jtv -f filename.tar.bz2

- 解压缩 : tar -jxv -f filename.tar.bz2 -C 欲解压的目录

那么filename.tar.bz2是我们自定义的文件名,tar并不会主动产生创建的文件名。我们要自定义。所以扩展名就很重要了。如果不加[-j|-z]的话,文件名最好取为.tar即可。如果是-j参数,代表有bzip2的支持,因此文件名最好就取为.tar.bz2,因为bzip2会产生.bz2的扩展名。至于如果是-z参数,代表了gzip的支持,因此文件名最好就取为*.tar.gz。

使用tar加入-j或-z的参数备份/etc/目录

c236bd9c8a6feae0371089c2bd999c84.png

b80656b44eb6fa2d14957ad86326eecb.png

8f0bf63327fb9acbe05c7412ca209a43.png

看到两种压缩的方式了吗,bzip2压缩确实比gzip压缩率高,所以推荐用bzip2来进行备份。

查询tar文件的数据内容(可查看文件名),与备份文件名是否有根目录的意义

要查看文件名非常简单,可以这样做:

a932d92de1cbe3675f26b3631a36af41.png

将解压缩的文件解压到指定位置(-C参数的应用)

587461b8a0a5634af6cce338f3376ce6.png

仅解开单个文件的方法

首先我们需要使用-jtv找到你要的文件名,然后将该文件名解开即可。

1.先找到我们要的文件名,假设解开shadow文件。

f48108e78f76b41d7804291fbd83204c.png

2.将该文件解开。语法和实际如下:

8bf9396e11eb7be7560913ea9313e939.png

打包某目录,但不包含该目录下的某些文件的做法(–exclude=FILE)

假设我们想要打包/etc /root 这几个重要的目录,但却不想要打包/root/etc*开头的文件,因为该文件我们都是刚才已经创建的备份文件。而且假设这个新的打包文件要放置称为/root/system.tar.bz2,当然这个文件不要自己打包自己(因为这个文件放置在/root下面),此时我们可以通过–exclude的帮忙。so you can do that:

[root@www ~]#tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* \

>--exclude=/root/system.tar.bz2 /etc /root

详情可参见第九章 ->Linux文件与文件系统的压缩与打包

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值