一、文件压缩、解压缩
1.linux compress命令(compress/uncompress)
(1)压缩文件:
[root@server ~]# du -sh passwd1---查看文件大小
[root@server ~]# time compress passwd1---time:查看时间 compress:将文件进行压缩
real 0m0.012s
user 0m0.004s
sys 0m0.006s
压缩后文件变成passwd.Z
(2)解压:
法1:compress -d passwd1.Z
法2:uncompress passwd1.Z
2.zip格式:
(1)zip是可以既归档又压缩的工具,也可以压缩目录
(2)命令格式:
- zip FILE
- unzip FILE
- unzip -d FILE +路径
(3)示例:
<1> 压缩文件passwd1
[root@server ~]# time zip passwd1.zip passwd1---内容:将passwd1文件压缩为passwd1.zip
<2> 将f1-6.txt文件压缩(压缩文件可以使用通配符)
[root@server ~]# zip f.zip f[1-6].txt
<3> 压缩目录 -r
[root@server ~]# zip -r dir1.zip dir1/
[root@server ~]# unzip dir1.zip -d /opt/---解压文件到指定/opt目录下
<4> 向压缩好的文件中添加文件 -m
[root@server ~]# zip -m f.zip passwd---将passwd文件添加到压缩文件f.zip中
<5> 在压缩文件中删除文件 -d
[root@server ~]# zip -d f.zip passwd---在压缩文件f.zip文件中删除passwd
<6> 压缩文件时排除个别文件 -x
[root@server ~]# zip passwd1.zip f*.txt -x f[1-6].txt---将f*.txt文件压缩到passwd1.zip文件中,排除f[1-6].txt
<7> 解压文件 unzip
默认解压在当前路径,如果要解压到指定路径,使用 -d pathname
[root@server ~]# unzip passwd1.zip -d /opt/ ---将压缩文件passwd1.zip解压到opt目录下
3.gzip(.gz)、bzip2(.bz2)、xz(.xz)、lzip(.lz)
(1)查看相应格式是否存在
lzip默认未安装,可以在链接上找到系统版本对应的lzip进行安装。
(2)gz
- 压缩
[root@server ~]# time gzip passwd1---将passwd1文件压缩
- 解压
[root@server ~]# gzip -d passwd1.gz---将文件解压(-d 默认解压到当前路径)
- 文件压缩后保留原始文件
[root@server ~]# gzip -c passwd1 > passwd1.gz---将文件压缩然后重定向输出到原位置
- 查看压缩文件内容---zcat zless
[root@server ~]# zcat test1.txt.gz ---查看压缩文件内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@server ~]# zless test1.txt.gz
(3)bzip2
- 压缩
[root@server ~]# time bzip2 passwd2---将passwd2文件压缩
- 解压
[root@server ~]# bzip2 -d passwd2.bz2---将文件解压(-d 默认解压到当前路径)
- 查看压缩文件内容---bzcat bzless
[root@server ~]# bzcat test1.txt.bz2 ---查看压缩文件内容
[root@server ~]# bless test1.txt.bz2
(3)xz
- 压缩
[root@server ~]# time xz passwd3---将passwd3文件压缩
- 解压
[root@server ~]# xz -d passwd3.xz---将文件解压(-d 默认解压到当前路径)
- 查看压缩文件内容---xzcat xzless
[root@server ~]# xzcat test1.txt.xz---查看压缩文件内容
[root@server ~]# xzless test1.txt.xz
(4)lz
- 压缩
[root@server ~]# time lzip passwd4---将文件passwd4压缩
- 解压
[root@server ~]# lzip -d passwd4.gz---将文件解压(-d 默认解压到当前路径)
(5)推荐方法:将文件压缩推荐xz和lz
二、文件归档
1.格式:
- tar [选项] 打包文件名 被打包的源文件或目录列表
- tar [选项] 打包文件名 [-C 目标文件夹]
2.常用选项:
选项 | 功能 |
c | 创建.tar格式的包文件 |
x | 释放.tar格式的包文件 |
t | 查看包中的文件列表 |
v | 表示在命令执行时显示详细的提示信息 |
f(包文件名) | 用于指定包文件名。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名; 当与-x选项一起使用时,则释放该选项指定的tar包文件。 |
p | 打包时保留文件及目录的权限。 |
z | 调用gzip程序,以gzip格式压缩或解压缩文件。 |
j | 调用bzip2程序,以bzip2格式压缩或解压缩文件。 |
J | 使用xz压缩(.tar.xz)。xz的压缩率通常比bzip2更高。 |
C(目标路径名) | 解压包时指定解压包的目的位置。 |
3.tar的常见作用:
(1)创建(非压缩的)包文件
- 命令:tar cvf 包文件名 要打包的目录或文件名列表
- 功能:将指定的一个或多个文件或目录备份生成为一个指定的包文件。
(2)创建带压缩的包文件(支持三种不同的压缩方式)
- 命令:tar c[z j|J] f 压缩包文件名 要备份的目录或文件名
czf .tar.gz
[root@server ~]# tar -czvf passwd1.tar.gz passwd1(v---查看过程)
cjf .tar.bz2
[root@server ~]# tar -cjvf passwd2.tar.bz2 passwd2
cJf .tar.xz
[root@server ~]# tar -cJvf passwd3.tar.xz passwd3
--lzip -cf .tar.lz
[root@server ~]# tar --lzip -cf passwd4.tar.lz passwd4
(3)列出包文件中的文件列表
- 命令:tar t[v]f 包文件名
(4)提取包文件到指定目录
- 命令:tar x [z j|J] [v]f 包文件名 [ -C 目标位置]
(5)将文件进行解压
.tar.gz tar -xzf passwd1.tar.gz
.tar.bz2 tar -xjf passwd2.tar.bz2
.tar.xz tar -xJf passwd3.tar.xz
.tar.lz tar --lzip -xf passwd4.tar.lz
- -C (将文件解压到指定目录)
[root@server ~]# tar --lzip -xf passwd1.tar.lz -C /opt/
4.总结:
(1)工作中解压一律使用xf
(2)归档时可以排除文件
- --exclude=PATTERN 排除以PATHERN指定的文件
[root@server ~]# tar --exclude=f1.txt -cJvf f.txt.tar.xz f*.txt
[root@server ~]# tar --exclude='f[1-4].txt' -czvf f4.tar.gz f*.txt
使用通配符时,文件名加引号
- -X, --exclude-from=FILE 排除 FILE 中列出的模式串
[root@server ~]# vim exclude.txt---写入文件f1.f2.f3.f4.txt
f1.txt
f2.txt
f3.txt
f4.txt
[root@server ~]# tar -X exclude.txt -cJvf f3.tar.xz f*.txt---归档时排除文件exclude.txt中写入的文件
f5.txt
f6.txt