系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客
文章目录
- 1. `zip`
- 2. `gzip`
- 3. `zcat`
- 4. `bzip2`
- 5. `tar`
在Linux系统中,经常需要对文件和目录进行压缩和解压以节省空间或方便传输。本文将详细介绍四种常用的压缩和打包工具:zip
, gzip
, bzip2
, 和 tar
,包括它们的语法、参数和实际使用示例。
1. zip
zip
是一个用于压缩和打包文件的工具。
安装:
yum install -y zip unzip
语法:
zip [选项] 压缩包名 源文件或目录
参数:
-r
:递归地压缩目录下的所有文件和子目录。-q
:只显示警告和错误信息,不显示详细的压缩过程。-j
:只压缩文件,不保存目录结构。-m
:将源文件移动到压缩包后,而非复制。-u
:仅更新压缩包中新添加或修改的文件。-d
:从压缩包中删除指定的文件。-l
:显示压缩包中的文件列表。-x
:排除指定的文件或目录。-P
:设置密码。
示例:
-
压缩文件:
zip compressed.zip file.txt
将file.txt压缩为compressed.zip。
-
递归压缩目录:
zip -r compressed.zip directory/
将directory目录下的所有文件和子目录递归地压缩为compressed.zip。
-
添加文件到已有的压缩包:
zip -u compressed.zip new_file.txt
将new_file.txt添加到已有的compressed.zip压缩包中。
2. gzip
gzip
是一个用于压缩文件的工具。
语法:
gzip [选项] 文件
参数:
-d
:解压缩文件。-k
:保留原始文件,不删除压缩文件。-l
:显示压缩文件的信息,但不解压缩。-r
:递归地压缩目录下的所有文件。-v
:显示详细的压缩过程。
示例:
-
压缩文件:
gzip file.txt
将file.txt压缩为file.txt.gz,并删除原始文件。
-
解压缩文件:
gzip -d file.txt.gz
解压缩file.txt.gz为file.txt,并保留原始压缩文件。
3. zcat
zcat
用于查看.gz
压缩文件的内容而不解压。
示例:
zcat my.zip
4. bzip2
bzip2
是一个用于压缩文件的工具,通常比gzip
提供更高的压缩率。
语法:
bzip2 [选项] 文件
参数:
-d
:解压缩文件。-k
:保留原始文件,不删除压缩文件。-z
:压缩文件(默认行为)。-v
:显示详细的压缩过程。
示例:
-
压缩文件:
bzip2 file.txt
将file.txt压缩为file.txt.bz2,并删除原始文件。
-
解压缩文件:
bzip2 -d file.txt.bz2
解压缩file.txt.bz2为file.txt,并保留原始压缩文件。
5. tar
tar
是一个用于打包文件和目录的工具,可以与gzip
或bzip2
结合使用进行压缩。
语法:
tar [选项] 目标文件或目录
参数:
-c
:创建新的归档文件。-x
:从归档文件中提取文件。-f
:指定归档文件的名称。-v
:显示详细的归档过程。-z
:同时使用gzip
对归档文件进行压缩或解压缩。-j
:同时使用bzip2
对归档文件进行压缩或解压缩。
示例:
- 打包:
tar -c [选项] 目标文件/目录
选项包括:
-x:解压/解包
-c:创建
-t:查看
-r:追加文件到已存在的tar包
-f:指定文件名(必选项)
-p:保持权限不变
-v:操作过程详细信息
示例:
tar -cvf aa.tar /etc/services # 创建一个名为aa.tar的tar包,并将/etc/services打包进去
tar -tvf aa.tar # 查看aa.tar中的内容
tar -rvf aa.tar other.txt # 将other.txt文件追加到已存在的aa.tar包中
tar -xvf aa.tar # 解压aa.tar到当前目录
tar -xvf aa.tar -C /root/dir/ # 解压aa.tar到指定目录/root/dir中
- 压缩为gzip格式:
tar -cz [选项] 目标文件/目录
选项包括:
-z:指定压缩格式为gzip,后缀为.gz
-f:指定文件名(必选项)
示例:
tar -czvf bb.tar.gz /etc/services /tmp # 将/etc/services和/tmp目录打包并压缩为bb.tar.gz
tar -tzvf bb.tar.gz # 查看bb.tar.gz中的内容
tar -xzvf bb.tar.gz # 解压bb.tar.gz到当前目录
tar -xzvf bb.tar.gz -C /tmp # 解压bb.tar.gz到指定目录/tmp中
- 压缩为bzip2格式:
tar -cj [选项] 目标文件/目录
选项包括:
-j:指定压缩格式为bzip2,后缀为.bz2
-f:指定文件名(必选项)
示例:
tar -jcvf cc.tar.bz2 /etc/services # 将/etc/services打包并压缩为cc.tar.bz2
tar -tjvf cc.tar.bz2 # 查看cc.tar.bz2中的内容
tar -xjvf cc.tar.bz2 # 解压cc.tar.bz2到当前目录
tar -xjvf cc.tar.bz2 -C /tmp # 解压cc.tar.bz2到指定目录/tmp中
需要注意的是,压缩包无法直接添加内容进去,需要先解压成tar包,添加内容后再进行压缩。另外,压缩格式参数-z
和-j
可以根据压缩包的后缀自动识别,所以在查看和解压时可以省略这两个参数。
- 追加文件到已存在的tar包:
tar -r [选项] 目标文件 将要追加的文件
选项包括:
-r:将文件追加到已存在的tar包
-f:指定文件名(必选项)
示例:
tar -rvf aa.tar other.txt # 将other.txt文件追加到已存在的aa.tar包中
请注意,使用-r
参数时,要确保tar包的格式不是压缩格式(如.gz
、.bz2
),否则无法更新压缩后的包。如果需要追加文件到压缩的tar包中,需要先解压成普通的tar包,然后再进行追加操作。
最后:压缩与解压示例
- gzip压缩:
tar -czvf bb.tar.gz /etc/services
- bzip2压缩:
tar -cjvf cc.tar.bz2 /etc/services
- 追加文件到tar包:
tar -rvf aa.tar other.txt
使用这些工具,可以适应不同的需求和场景对文件进行压缩、解压和打包。