当前位置: 首页 > news >正文

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

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

      • 1. 基本语法
      • 2. 常用选项
      • 3. 具体示例
        • 示例 1:按文件大小分割
        • 示例 2:按行数分割
        • 示例 3:使用数字后缀
        • 示例 4:指定后缀长度
        • 示例 5:从标准输入读取并分割
        • 示例 6:显示分割过程
      • 4. 合并分割后的文件
      • 5. 校验分割合并后的文件

背景:在使用腾讯云服务器时,其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 

相关文章:

  • Linux中find 命令的高级用法 组合条件 与、或、非(-a、-o、!) 以及通过 -regex 和 -iregex 选项使用正则表达式
  • Android Vulkan 官宣转正并统一渲染堆栈 ,这对 Flutter 又有什么影响?
  • 【Python】11、函数-01
  • OpenCV图像处理:分割、合并、打码、组合与边界填充
  • VS Code + Git 分支操作指南(附流程图)
  • 基于Redis实现共享token登录
  • pytorch小记(十四):pytorch中 nn.Embedding 详解
  • 机器学习之梯度消失和梯度爆炸
  • 1.5.2 掌握Scala内建控制结构 - 块表达式
  • 【css酷炫效果】纯CSS实现虫洞穿越效果
  • Rust + WebAssembly 实现康威生命游戏
  • java 之枚举问题(超详细!!!!)
  • MySQL(索引)
  • 华为ISC+战略规划项目数字化转型驱动的智慧供应链革新(169页PPT)(文末有下载方式)
  • 架构师面试(十七):总体架构
  • numpy学习笔记4:np.arange(0, 10, 2) 的详细解释
  • 深度学习零碎知识
  • 【C语言】自定义类型:结构体
  • Android 15 获取网络切片信息的标准接口
  • 《C语言中的ASCII码表:解锁字符与数字的桥梁》
  • 五一期间全国高速日均流量6200万辆,同比增长8.1%
  • 解放日报:人形机器人新赛道正积蓄澎湃动能
  • 制定出台民营经济促进法有何重大意义?全国人大常委会法工委回应
  • 马上评丨上热搜的协和“4+4”模式,如何面对舆论审视
  • “五一”假期逛上海车展请提前购票,展会现场不售当日票
  • 青海西宁市城西区副区长于媛媛主动投案,接受审查调查