一、文件压缩、解压缩

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
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐