Linux 压缩文件命令详解,如何限制最大 500MB 分割压缩

admin

在 Linux 系统管理或服务器运维中,我们经常会遇到需要将较大的文件或目录进行压缩打包的场景,许多云存储服务、网盘或网络传输协议对单文件的大小有严格的限制(例如限制为 500MB)。

当源文件超过 500MB 时,直接使用常规的 tar 命令压缩会产生一个巨大的单一文件,导致无法上传或存储,为了解决这个问题,我们需要使用 split 命令将压缩后的文件切割成若干个不超过 500MB 的片段。

以下是实现 Linux 按最大 500MB 压缩文件 的完整操作指南。

Linux 压缩文件命令详解,如何限制最大 500MB 分割压缩

核心命令组合

最常用的方法是利用管道符 将 tar 的输出重定向到 split 命令中。

命令语法:

tar -czvf - /path/to/source | split -b 500M - output_prefix

命令解释:

  • tar -czvf -:使用 gzip 压缩算法,输出到标准输出(stdout,即 ),而不是直接写文件。
  • 管道符,将 tar 的输出传递给 split 命令。
  • split -b 500M:按 500MB 的字节大小进行分割。
  • - output_prefix:指定分割后文件的前缀。split 会自动添加 .aa.ab.ac 等后缀来区分不同的文件片段。

实际操作示例

假设我们要压缩 /home/user/data 目录,并限制最大 500MB。

步骤 1:执行压缩与分割

tar -czvf - /home/user/data | split -b 500M - backup_part_

执行后,系统会生成如下文件:

  • backup_part_aa (0-500MB)
  • backup_part_ab (500-1000MB)
  • backup_part_ac (1000MB+)

指定不同的大小单位

split 命令支持多种单位,除了 M (Megabytes) 之外,常用的还有:

  • K: Kilobytes (千字节)
  • G: Gigabytes (千兆字节)
  • m / M: 都代表兆字节

示例(按 500K 大小分割):

tar -czvf - /path/to/source | split -b 500K - output_prefix

如何解压合并文件?

当文件被分割成多个部分后,解压时需要先将所有部分合并,再通过 tar 解压。

解压步骤:

cat backup_part_* | tar -xzvf -

命令解释:

  • cat backup_part_*:读取所有分割文件并将它们按顺序合并。
  • 管道符。
  • tar -xzvf -:将合并后的数据作为输入,解压到当前目录。

进阶技巧:查看压缩进度

如果源文件非常大,压缩过程可能需要较长时间,你可以使用 pv (Pipe Viewer) 命令来实时监控数据传输的速度和进度。

首先安装 pv(如果没有安装):

sudo apt-get install pv   # Debian/Ubuntu
sudo yum install pv       # CentOS/RHEL

带进度条的压缩命令:

pv /home/user/data | tar -czvf - | split -b 500M - backup_part_

通过结合 tarsplit 命令,我们可以轻松解决 Linux 环境下大文件压缩受限于 500MB 的问题。

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码