【Linux】Linux系统上大文件的分割与合并

发布于:2025-03-22 ⋅ 阅读:(57) ⋅ 点赞:(0)

背景:在使用腾讯云服务器时,其FTP 使用有限制,只能下载最大500M 的文件,所以,我只能将一个打包好的大的镜像文件,分割成多个下载下来。

主角:我是使用的split + cat 命令组合解决了我的问题。split 是 Linux 系统中一个非常实用的命令,用于将大文件分割成多个小文件。它可以根据文件大小、行数或特定的字节数进行分割。以下是 split 命令的详细介绍和具体示例。


1. 基本语法

split {选项} {输入文件} {输出文件前缀}
  • {输入文件}:需要分割的文件。如果未指定,则从标准输入读取。
  • {输出文件前缀}:分割后生成的文件名前缀。如果未指定,默认为 x

2. 常用选项

选项 说明
-b <大小> 按文件大小分割(支持单位:K、M、G)。
-l <行数> 按行数分割。
-a <长度> 指定后缀长度(默认是 2)。
-d 使用数字后缀(默认是字母后缀)。
--verbose 显示分割过程的详细信息。

3. 具体示例

示例 1:按文件大小分割

largefile.txt 按每 100MB 分割:

split -b 100M largefile.txt part_
  • 生成的文件名格式为 part_aapart_abpart_ac 等。
示例 2:按行数分割

largefile.txt 按每 1000 行分割:

split -l 1000 largefile.txt part_
  • 生成的文件名格式为 part_aapart_abpart_ac 等。
示例 3:使用数字后缀

largefile.txt 按每 50MB 分割,并使用数字后缀:

split -b 50M -d largefile.txt part_
  • 生成的文件名格式为 part_00part_01part_02 等。
示例 4:指定后缀长度

largefile.txt 按每 10MB 分割,并指定后缀长度为 3:

split -b 10M -a 3 largefile.txt part_
  • 生成的文件名格式为 part_aaapart_aabpart_aac 等。
示例 5:从标准输入读取并分割

将命令输出的内容按每 5 行分割:

ls -l | split -l 5 - part_
  • 生成的文件名格式为 part_aapart_abpart_ac 等。
示例 6:显示分割过程

largefile.txt 按每 20MB 分割,并显示详细信息:

split -b 20M --verbose largefile.txt part_
  • 输出示例:
    正在创建文件 'part_aa'
    正在创建文件 'part_ab'
    ...
    

4. 合并分割后的文件

使用 cat 命令可以将分割后的文件合并回原始文件。例如:

cat part_* > largefile_restored.txt

5. 校验分割合并后的文件

首先,可以比较文件在分割合并前后的大小(字节数)是否一致;如果是 xx.tar.gz xx.zip 文件,可以对文件进行解压缩,看文件是否可被正常解压缩。或者直接使用sha256sum 命令比较两个文件的Hash 值。用于验证文件完整性,确保文件在传输或存储过程中未被篡改。

sha256sum largefile_restored.txt 


网站公告

今日签到

点亮在社区的每一天
去签到