|
本帖最后由 非凡云 于 2025-6-12 19:18 编辑
tar 打包
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
压缩文件
- tar -zcvf 打包的文件名.tar.gz [源文件]
- # 多个文件打包
- tar -zcvf houma.tar.gz houge.txt bailongma.txt
- # 打包文件夹
- tar -zcvf xiyou.tar.gz xiyou/
复制代码 解压
- # 解压到当前目录
- tar -zxvf houma.tar.gz
- # -C 解压到某个目录下
- tar -zxvf xiyou.tar.gz -C /opt
复制代码 zip/unzip 压缩
zip压缩
- zip 压缩文件名.zip 源文件
- # 压缩文件
- zip lnTest.zip lnTest.txt
- # -r 压缩文件夹
- zip -r nginx1.zip nginx-1.21.6
复制代码 unzip解压
- unzip lnTest.zip
- # -d 指定解压后文件的存放目录
- unzip lnTest.zip -d /opt
复制代码 gzip 压缩/解压
gzip 命令是一个广泛使用的文件压缩和解压工具,它使用 Lempel-Ziv (LZ77) 算法进行无损数据压缩,压缩后的文件通常以 .gz 为扩展名。
核心功能: 压缩文件: 将文件压缩成 .gz 格式,默认会删除原始文件。 解压文件: 将 .gz 压缩文件解压,默认会删除压缩文件。 查看压缩信息: 显示压缩文件的压缩比、未压缩大小等元数据(不解压)。 测试压缩文件完整性: 检查 .gz 文件是否有错误。
基本语法:
- gzip [选项] [文件 ...]
- gunzip [选项] [文件.gz ...] # 或者使用 gzip -d
- zcat [文件.gz ...] # 或者使用 gzip -dc
复制代码 常用选项详解:
[td]选项 | 长选项 | 说明 | -d | --decompress | 解压缩。相当于 gunzip 命令。 | -c | --stdout | 保留原始文件。将压缩或解压后的内容输出到标准输出(屏幕),不删除原始文件。通常与重定向 > 一起使用保存结果。 | -k | --keep | 保留原始文件。压缩或解压后保留输入文件。这是较新版本 gzip 支持的选项。 | -v | --verbose | 显示详细信息。压缩或解压时显示文件名和压缩比。 | -l | --list | 列出压缩文件信息。对每个压缩文件显示:压缩后大小、未压缩大小、压缩比、未压缩文件名。不解压文件。 | -t | --test | 测试压缩文件完整性。检查压缩文件是否有错误,但不解压数据。 | -r | --recursive | 递归处理目录。如果指定了目录,则递归压缩/解压该目录及其子目录下的所有文件(仅适用于支持递归的 gzip 版本)。注意: 它压缩目录中的单个文件,不是将整个目录打包成一个 .gz 文件! | -# | | 设置压缩级别。# 是一个从 1 到 9 的数字:
- -1 或 --fast:最快压缩(压缩比最低)
- -9 或 --best:最慢压缩(压缩比最高)
- 默认级别是 -6(在速度和压缩率之间取得较好的平衡)。 | -f | --force | 强制执行。强制压缩/解压,即使文件有多个链接、文件已存在或从终端读取/写入数据。 | -h | --help | 显示帮助信息。 | -L | --license | 显示软件许可证信息。 |
重要注意事项: 默认行为删除原文件: 这是 gzip 最重要的特性之一,也是新手容易出错的地方。
压缩目录: gzip 本身不能直接将整个目录压缩成一个单一的 .gz 文件。它只能压缩单个文件。
解压目录: gunzip 或 gzip -d 解压由 gzip -r 产生的 .gz 文件时,会还原目录结构中的单个文件。解压由 tar 打包并用 gzip 压缩的 .tar.gz 文件时,需要使用 tar -xzvf archive.tar.gz。
常用操作示例:
基本压缩 (删除原文件):
- gzip filename.txt # 压缩 filename.txt -> filename.txt.gz (原文件消失)
复制代码 压缩并保留原文件 (-k 或 -c + 重定向):
- gzip -k filename.txt # 压缩成 filename.txt.gz, 同时保留 filename.txt
- # 或者
- gzip -c filename.txt > filename.txt.gz # 效果同上
复制代码 基本解压 (删除压缩文件):
- gunzip filename.txt.gz # 解压成 filename.txt (filename.txt.gz 消失)
- # 或者
- gzip -d filename.txt.gz # 同上
复制代码 解压并保留压缩文件 (-k 或 -c + 重定向):
- gunzip -k filename.txt.gz # 解压出 filename.txt, 同时保留 filename.txt.gz
- # 或者
- gzip -dc filename.txt.gz > filename.txt # 效果同上
复制代码 查看压缩文件信息 (-l):
- gzip -l filename.txt.gz
- # 输出示例:
- # compressed uncompressed ratio uncompressed_name
- # 85 102 24.5% filename.txt
复制代码 测试压缩文件完整性 (-t):
- gzip -t filename.txt.gz
- # 如果没有错误,没有输出表示成功。如果有错误会显示错误信息。
复制代码 递归压缩目录下所有文件 (谨慎使用!):
- gzip -r mydirectory/ # 压缩 mydirectory 及其子目录下所有文件 (每个文件单独压缩成.gz,原文件删除)
复制代码 递归解压目录下所有 .gz 文件:
- gunzip -r mydirectory/ # 解压 mydirectory 及其子目录下所有 .gz 文件 (压缩文件删除)
复制代码 使用不同压缩级别:
- gzip -9 bigfile.iso # 最大压缩 (慢,压缩比高)
- gzip -1 logfile.log # 最快压缩 (快,压缩比低)
复制代码 不解压查看压缩文件内容 (zcat 或 gzip -dc):
- zcat filename.txt.gz # 将解压后的内容输出到屏幕
- # 或者
- gzip -dc filename.txt.gz
- # 常用于管道处理: zcat access.log.gz | grep "error" | head
复制代码 压缩标准输入并输出到文件:
- cat input.txt | gzip > output.gz
- # 或者
- gzip < input.txt > output.gz
复制代码 解压标准输入并输出到标准输出:
- cat output.gz | gunzip
- # 或者
- gunzip < output.gz
- # 或者
- zcat output.gz
复制代码 与 tar 结合使用 (强烈推荐用于目录):
如前所述,gzip 处理目录不方便。tar 负责将多个文件和目录结构打包成一个 .tar 文件,然后gzip 负责压缩这个 .tar 文件。
压缩目录:
- tar -czvf archive_name.tar.gz directory_to_compress/
复制代码 解压 .tar.gz 文件:
- tar -xzvf archive_name.tar.gz
复制代码
|
|