Linux 使用 Split 命令分割文件与合并

Linux的split命令,作为一个强大且实用的工具,其核心功能是将一个极其庞大的单个文件分割成多个更便于管理和处理的小文件。这个特性在众多实际应用场景中都展现出了极高的价值和灵活性。无论是为了适应存储设备的容量限制,还是为了方便文件传输时降低单个文件大小以满足网络传输条件,甚至是在进行大数据分析前按照一定规则预先划分数据集,Linux split命令都能发挥关键作用。

使用场景

  1. 数据传输

    • 当需要通过网络传输大文件,而带宽有限或者网络不稳定时,可以先将大文件分割成小块进行传输,之后再在目标主机上合并。
    • 例如,在FTP、电子邮件等不支持大文件上传的情况下,分块发送更方便。
  2. 磁盘空间管理

    • 如果服务器或存储设备的空间不足,可以临时将大日志文件或其他大型数据文件分割,处理完后再合并。
    • 对于备份操作,有时也需要对大文件进行分卷备份以适应磁盘介质(如CD/DVD)的大小限制。
  3. 分布式处理

    • 在并行计算或分布式环境中,可能需要将大数据集分割为若干小文件,以便分配到不同的节点上分别处理,处理完成后结果可以再合并。
  4. 数据库和日志处理

    • 日志文件过大时,可将其分割成多个便于阅读和分析的小文件。
    • 大型数据库备份文件也可以按照特定大小分割,便于管理和恢复。
  5. 脚本自动化

    • 在脚本中自动执行文件分割,用于后续的批处理任务或归档需求。

文件分割

  1. 最直接的方式进行分割
bash 复制代码
split -b 100M largefile.txt smallparts_

这条命令会将名为largefile.txt的大文件按每部分100MB的大小分割,并生成一系列以smallparts_开头的文件。

  1. 分割文件以数字为结尾,使用 -d
bash 复制代码
split -b 100M -d largefile.txt largeparts_

此命令会按100MB大小分割文件,但生成的文件名将以数字作为后缀(例如:largeparts_00largeparts_01等)。

  1. 将文件分割成指定份数, 使用 -n
bash 复制代码
split -n 2 -d largefile.txt output_

此命令 -n 2 表示将文件内容均分为两部分,-d 指定生成的文件名中包含数字后缀;执行上述命令后,largefile.txt 将被分割成两个文件:output_00output_01

文件合并

可以使用cat命令来合并由split命令分割出来的文件

bash 复制代码
cat x* > original_file
  • 这里x*表示所有以"x"开头的文件,这些文件是之前用split命令分割出来的。cat会将它们的内容连接起来,并重定向到新的original_file中。

注意事项:合并前请确保分割后的文件顺序正确,如果是按数字序号排列的,则直接按顺序合并即可。

MD5校验

文件拆分合并后,保险起见我们应当对其计算一下MD5,保证数据传输的一致性,我们没办法保证文件在传输过程中是否损坏,所以尤其是对一些分片数量多,文件体积大的文件合并后应当做一下校验。这里对合并文件前后MD5计算

bash 复制代码
md5sum largefile.txt
md5sum output.txt

可以看到两个文件的MD5值是一样的

更多用法

显示帮助信息

bash 复制代码
split --help
相关推荐
微露清风1 小时前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
不会代码的小猴2 小时前
Linux环境编程第六天笔记--system-V IPC
linux·笔记
阳光九叶草LXGZXJ2 小时前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
诸神缄默不语2 小时前
Linux命令行教程
linux
小二李3 小时前
第11章 nestjs服务端开发:登录鉴权
运维·服务器
i建模4 小时前
如何在Arch Linux中重设忘记的root密码
linux·运维·服务器
chatexcel5 小时前
元空AI+Clawdbot:7×24 AI办公智能体新形态详解(长期上下文/自动化任务/工具粘合)
运维·人工智能·自动化
kida_yuan5 小时前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
@syh.5 小时前
【linux】进程控制
linux
何中应7 小时前
vmware的linux虚拟机如何设置以命令行方式启动
linux·运维·服务器