需求:
我们传输一个大文件时,有时网络比较慢,需要花费很长时间才能传输完成,或者传输的过程中,网络不稳定,有可能导致此次传输失败,针对这种情况,我们可以把大文件切分成小文件,再逐个的传输到目的地,最后再把它们合并成一个文件
小文件传输有什么优点呢?当出现网络闪断导致传输失败了,也只需要重新传输失败的一个文件,由于文件比较小,重新传输相对大文件要快很多,另外,切割成小文件,可以增加传输的并发量,也就是说多个小文件同时传输,比传输单个文件速度更快
Linux下切割文件的命令是 split 合并文件可以使用 cat 命令,下面将介绍这两个命令的使用以及切割和合并文件的方法

语法:
split 命令的语法如下:

split [OPTION]... [INPUT [PREFIX]]

PREFIX 表示大文件分割后产生的小文件名字的前缀,默认是小写字母 x,前缀后跟一组字符 , 按照类似 aa、ab、ac 字母顺序组成一个一个的文件名,比如:切割成三个文件,它们的文件名默认就是 xaa、 xab、 xac
OPTION 表示命令的选项,比如:按字节切割文件,按文件行切割文件等,下面列出了一些常用的选项

切割文件实例:
1) 按文件大小切割
创建一个100M的文件

fallocate -l 100M file

切割成每个文件20M,并输出日志

split -b 20M --verbose file


2) 指定切割成多少份
切割成10份,后缀使用数字不使用默认字母,指定前缀

split -n 10 -d num num_


3) 按行分割
首先创建一个 10K 大小的文件, 文件的每一行内容都是 “this is a test file”,并查看多少行

yes "this is a test file" | head -c 10K > numfile
[root@VM-12-12-centos bird]# cat numfile | wc -l
512

每100行切割一次

split -l 100 numfile

  1. 禁止生产长度为0的文件
    由于切割的最小单位是1kb,如果5kb的文件切割为8份,就会有3个文件是0kb,所有这个时候就可以加上-e参数禁止生产0kb的文件
    首先创建一个5kb的文件

     fallocate -l 5 testfile
    

将testfile分割为8份

split -n 8 -e testfile


#可以看出并没有生产0字节的文件

切割与合并
大文件切割成许多小文件,通过网络全部传输到远程机器上之后,需要把它们合并成一个大文件,并且合并之后的大文件与原始的大文件要一模一样,下面我们通过一个实例来说明整个过程
1、 生成一个1G的文件用做分割和合并实验

fallocate -l 1G file

2、 查看文件的MD5值,用于合并文件时,检验文件是否损坏

md5sum file

3、 3、 将file文件分割成10份

split -n 10 -d file

4、 将文件进行合并

cat x* >new_file


5、 MD5值校验

#可以看出文件没有问题,这里有模拟了向远程主机切片传输文件,并合并的一个过程

Linux文件的切割与合并相关推荐

  1. java实现对大文件切割下载_Java实现大文件的切割与合并操作示例

    Java实现大文件的切割与合并操作示例 发布时间:2020-09-27 02:25:08 来源:脚本之家 阅读:99 作者:HiBoyljw 本文实例讲述了Java实现大文件的切割与合并操作.分享给大 ...

  2. java基础—文件的切割与合并

    文件的切割与合并 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Fil ...

  3. MP3文件的切割和合并

    MP3文件的切割和合并 package cn.itcast.sequenceinputstream; /*需求:把一首mp3先切割成n份,然后再把这些文件合并起来*/import java.io.Fi ...

  4. File类文件的切割与合并

    文件的切割:定义一个文件输出流,用来读取文件,在while语句中定义文件输出流,每循环一次就创建一个新的输出流来写图片 // 读取文件FileInputStream fi = new FileInpu ...

  5. python切割音频文件_python切割和合并wav音频文件

    切割wav音频文件 如果没有pydub需要使用pip install pydub来安装模块 from pydub import AudioSegment from pydub.utils import ...

  6. linux 文件切割

    切割合并文件在linux下用split和cat就可以完成.下面举些实例进行说明. 1.文件切割 文件切割模式分为两种: 文本文件: 二进制模式. 1.1文本模式 文本模式只适用于文本文件,用这种模式切 ...

  7. linux sed给空文件首行插入_linux下批量修改文件后缀名以及合并多行

    写在前面 感谢乔兄送测的公司,让我终于所有营业 part1讲下怎么解决小问题 part2分享谈判过程 part3mark张兄的奶茶 PART1 linux下批量修改文件后缀名以及合并多行 近期师兄在做 ...

  8. php+如何按文字分割文件夹,PHP实现的大文件切割与合并功能示例

    本文实例讲述了PHP实现的大文件切割与合并功能.分享给大家供大家参考,具体如下: 分割代码 split.php $i = 0; //分割的块编号 $fp = fopen("hadoop.sq ...

  9. linux下将多个文件去除文件头合并_命令行生存指南:拆分与合并 | Linux 中国

    这一节将会介绍 Linux 命令行下的文件拆分与合并操作. 作者:Psiace (本文字数:2706,阅读时长大约:3 分钟) 作为一个工程师,我们经常与命令行打交道,但除了工作用的命令,你是否尝试过 ...

最新文章

  1. python sklearn.svm.SVC() 使用方法
  2. 理解 | 理解a: float=10
  3. 设计模式(五)--工厂模式汇总
  4. 清华大学《操作系统》(十八):管程于信号量
  5. PageHelper 关闭COUNT(0)查询 以及PageHelper 的分页原理分析
  6. html canvas toblob 和下载图片
  7. ubuntu 16.04 手动安装Java过程
  8. NP、OSPF 缺省路由
  9. 什么是产品的愿景—从一篇博文中学得到
  10. MAC 安装python3 菜鸟教程
  11. 数据挖掘概念与技术第三版 范明、孟晓峰译 第三章习题答案
  12. Bootstrap框架---Uploadify插件----多张图片上传交互方式一
  13. python英文参考文献格式_英文论文参考文献标准格式
  14. 小米3文件与电脑连接到服务器,小米3如何连接电脑_小米3连接电脑发送文件的步骤...
  15. oracle监听时区,对Oracle中时区及时间的认识
  16. ECSHOP整合第三方登录,ECSHOP第三方QQ登录插件,ECSHOP第三方新浪微博登录插件,ECSHOP第三方支付宝登插件,ECSHOP淘宝登陆插件,ECSHOP第三方MSN登录
  17. 美元的阿拉伯数字转换为英文大写的格式
  18. oracle资产负债表重分类吗,​资产负债表一般是重分类还是不重分类
  19. VS2017中MFC的C++设计中给其它窗口发中文消息
  20. UI设计中线性图标设计总结

热门文章

  1. springboot如何根据bean名字注入
  2. c语言xml解析器libxm2
  3. 记一次上传应用到360移动开放平台和应用包开放平台
  4. oracle的安装实验报告,Oracle实验报告Oracle实验报告.doc
  5. java依赖登录的接口_sign-sdk-java
  6. 计算机二级access知识点题库,计算机二级access考试题库
  7. #{key}和${key} 取值的区别
  8. 29 java网络编程
  9. ubuntu 安装星际译王(stardict)
  10. Python3 02 数字(Number)、字符串、列表、元组、字典