在 Linux 系统管理或服务器运维中,我们经常会遇到需要将较大的文件或目录进行压缩打包的场景,许多云存储服务、网盘或网络传输协议对单文件的大小有严格的限制(例如限制为 500MB)。
当源文件超过 500MB 时,直接使用常规的 tar 命令压缩会产生一个巨大的单一文件,导致无法上传或存储,为了解决这个问题,我们需要使用 split 命令将压缩后的文件切割成若干个不超过 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_
通过结合 tar 和 split 命令,我们可以轻松解决 Linux 环境下大文件压缩受限于 500MB 的问题。
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

