一、文件归档并压缩解压命令tar

格式:tar [主选项+辅助选项] 文件或者目录,tar本身不具有压缩功能,它是调用功能实现的。

主选项

含义

-c

创建新的文件

-r

把要归档的文件追加到档案文件的末尾

-t

列出档案文件中已经归档的文件列表

-x

从打包的档案文件中还原出文件

-u

更新档案文件,用新的文件替换档案中的原始文件

辅助选项

含义

-z

调用gzip命令在文件打包的过程中压缩/解压文件

-w

在还原文件时,把所有文件的修改时间设定为现在时间

-j

调用bzip2命令在文件打包的过程中压缩/解压文件

-Z

调用compress命令过滤档案

-f

-f选项后面紧跟档案文件的存储设备,默认是磁盘,需要指定档案文件名;如是果磁带,只需要指定磁带设备名即可 。注意,在-f选项之后不能再跟任何其他选项,也就是说-f必须是tar命令的最后一个选项

-v

指定在创建归档文件过程中,显示各个归档文件的名称

-p

在文件归档的过程中,保持文件的属性不发生变化

-N "yyyy/mm/dd"

在指定日期之后的文件才会被打包到档案文件中

--exclude=file

在打包过程中,不将指定file文件打包

二、tar命令玩法

1、将/etc/目录下的所有文件打包到/opt目录下

tar -cvf /opt/etc.tar /etc

2、将/etc/目录下的所有文件打包并压缩,并显示打包的详细文件

tar -czvf /opt/etc.tar.gz /etc 打包完成后调用jzip命令对档案文件进行压缩

tar -cjvf /opt/etc.tar.bz2 /etc 打包完成后调用bzip2命令对档案文件进行压缩,需要安装bzip2软件

3、查看etc.tar.gz压缩包的内容

tar -ztvf /opt/etc.tar.gz

tar -jtvf /opt/etc.tar.bz2

4、解压/opt/etc.tar.gz到/tmp下

tar -zxvf /opt/etc.tar.gz -C /tmp

5、将/opt/etc.tar.gz压缩文件中的/etc/inittab文件解压到/tmp目录下

tar -zxvf /opt/etc.tar.gz etc/inittab -C /tmp

6、将/etc目录下的所有文件打包备份到/opt目录下,并保存每个文件的权限

tar -zxvpf /opt/etc.tar.gz /etc

7、打包备份/var/log目录中2022/2/22以后的文件

tar -N '2022/2/22' -zcvf log.tar.gz /var/log

8、打包/etc/目录下文件,但不包含*.repo的文件

tar -czvf etc.tar.gz /etc --exclude=/etc/yum.repos.d/*.repo

三、文件压缩解压缩命令gzip/gunzip

gzip/gunzip是个使用广泛的解压缩程序,它用于解开被zip压缩过的文件,这些压缩文件预设最后的扩展名为".gz"。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

gzip只能对文件进行压缩,不能压缩目录,即使指定压缩的目录,也只能压缩目录内的所有文件。

格式:gzip [选项] 压缩(解压缩)的文档名

1、将/etc目录下所有文件及子目录进行压缩,备份压缩包etc.zip,然后再对etc.zip文件进行gzip压缩,设置gzip的压缩级别为9

zip -r /opt/etc.zip /etc

gzip -9v /opt/etc.zip

etc.zip: 3.4% -- replaced with etc.zip.gz

2、查看压缩信息,-l显示压缩文件的压缩信息,显示字段为压缩文档大小

gzip -l etc.zip.gz

compressed uncompressed ratio uncompressed_name

14395928              14907838 3.4% etc.zip

3、解压etc.zip.gz到当前目录, -d对压缩的文件进行解压

gzip -d etc.zip.gz 等价于 gunzip etc.zip.gz

四、文件压缩解压缩命令bzip2/bunzip2

bzip2/bunzip2表示对文件进行压缩与解压缩。此命令类似于gzip/gunzip命令,只能对文件进行压缩。只能压缩目录下的所有文件,压缩完成后,在目录下生成以.bz2为扩展名的压缩包。bunzip2其实是bzip2的符号链接,即软链接,因此压缩解压都可以通过bzip2实现。其格式如下:

bzip2 [选项] 需要压缩或解压的文件