导读:这一节将会介绍 Linux 命令行下的文件拆分与合并操作。                           本文字数:2706,阅读时长大约:3分钟作者:Psiace

作为一个工程师,我们经常与命令行打交道,但除了工作用的命令,你是否尝试过让命令来替代你生活中方方面面?

为了让更多的爱好者可以用命令行作为自己的有效工具,Linux 中国特别邀请了三位作者,撰写了《命令行生存指南》,希望可以通过这个系列的文章,让你换一个视角,来看待命令行的存在。如果你想体验一下不一样的命令行,那就不妨来看看今天的《命令行生存指南》。

本次的内容为试读内容,也欢迎你针对今天的内容提出自己的意见和建议。

操作概述

备份文件时常常涉及到大文件传输的问题,遇到网络质量不佳或者其他问题常常会导致传输中断,而不得不进行重传。如果采用先将大文件拆分成多个小文件进行传输、待全部传输完成后合并所有文件的方式,往往可以改善传输体验。

这一节将会介绍 Linux 命令行下的文件拆分与合并操作。

概念和术语

拆分,顾名思义,就是将一个大的文件分割成若干个较小的文件,这些小文件按次序拼接后可以还原大文件。通常情况下,根据文件大小进行拆分是较为常见的方式;但由于文本文件具有行数特征,所以除了按大小拆分之外,也可以按行数拆分。

合并,就是将若干个较小的文件拼接成一个较大文件。通常只需要按次序连接即可,相对比较简单。

通常情况下,为确保拆分前和合并后的两个文件相同,需要进行验证。

操作实战

场景一:使用 split 拆分文件

< 如显示不全,请左右滑动 >

难度
演示用发行版 Fedora 32
涉及命令 split

split 是 Linux 环境提供的文件拆分实用程序,同时支持二进制文件和文本文件。通常情况下已经随 coreutils 内置于系统中,无需另行安装。

按大小拆分

二进制文件和文本文件按大小拆分时使用的选项不同:

◈ 二进制文件使用 -b 选项指定分割后的文件大小。◈ 文本文件则使用 -C 选项指定分割后的文件大小。

二者用法类似,只需要:

split [选项] [大小] [待拆分文件] [拆分后的前缀(可选)]

以将 debian-live-10.5.0-amd64-lxqt.iso(约 2.4 GB)按 100MB 大小进行拆分为例:

> split -b 100M debian-live-10.5.0-amd64-lxqt.iso debian-live-

可以看到原文件被拆分成 25 个更小的文件,从 aa 到 ay:

debian-live-aa debian-live-ad debian-live-ag debian-live-aj debian-live-am debian-live-ap debian-live-as debian-live-av debian-live-aydebian-live-ab debian-live-ae debian-live-ah debian-live-ak debian-live-an debian-live-aq debian-live-at debian-live-awdebian-live-ac debian-live-af debian-live-ai debian-live-al debian-live-ao debian-live-ar debian-live-au debian-live-ax

场景二:使用 cat 合并文件

< 如显示不全,请左右滑动 >

难度
演示用发行版 Fedora 32
涉及命令 cat、diff

cat 是 linux 环境提供的文件连接实用程序,能够连接文件并将其输出到标准输出。通常情况下已经随 coreutils 内置于系统中,无需另行安装。

值得注意的是,为了保证合并后的文件和原始文件一致,在有条件的情况下,可以用 diff 命令验证。

合并拆分后的文件

使用 cat 合并文件可以采用 cat [文件...] > [合并后的文件名] 的格式,此方法对二进制文件和文本文件均有效。

以之前的 debian-live-aa 到 debian-live-ay 为例,合并时可以使用此命令:

> cat debian-live-* > debian-live.iso

可以看到目录下会生成合并后的 debian-live.iso 文件。

debian-live-aa debian-live-ad debian-live-ag debian-live-aj debian-live-am debian-live-ap debian-live-as debian-live-av debian-live-aydebian-live-ab debian-live-ae debian-live-ah debian-live-ak debian-live-an debian-live-aq debian-live-at debian-live-aw debian-live.isodebian-live-ac debian-live-af debian-live-ai debian-live-al debian-live-ao debian-live-ar debian-live-au debian-live-ax

使用 diff 验证文件

只需要按 diff [原文件] [现文件] 的格式执行即可。如果没有输出,则证明两个文件之间没有差异。

以对比 debian-live-10.5.0-amd64-lxqt.iso 和 debian-live.iso 为例:

> diff debian-live-10.5.0-amd64-lxqt.iso debian-live.iso> # 无输出,表示二者是相同的。

小练习

◈ 尝试以不同方式拆分系统中的日志文件。

拓展阅读

◈ Linux 中国 官网上的《使用 split 命令分割 Linux 文件》同样介绍了文件的拆分与合并。

拆分命令_命令行生存指南:拆分与合并 | Linux 中国相关推荐

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

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

  2. linux安装强制命令行,命令行生存指南:强制早睡 | Linux 中国

    导读:你会不会经常陷入这么一个情景:计划晚上早点睡叫,然而无奈总是一不小心玩过头了. 本文字数:2996,阅读时长大约: 3分钟 作者:Lujun9972 作为一个工程师,我们经常与命令行打交道,但除 ...

  3. linux 权限提示信息,命令行快速提示:权限进阶 | Linux 中国

    原标题:命令行快速提示:权限进阶 | Linux 中国 本部分介绍使用权限管理文件访问和共享的其他方法. -- Paul W. Frields 前一篇文章.本部分介绍使用权限管理文件访问和共享的其他方 ...

  4. notepad++怎么换行命令_命令注入新玩法:巧借环境攻击目标

    在一次漏洞赏金活动中,挖掘到一个不标准的命令注入漏洞,我无法用命令分隔符.命令替换符注入新命令让系统执行,所以,从"型态"上讲,它不算是命令注入漏洞:但我又可以借助目标环境让载荷到 ...

  5. python按行拆分表格_Python几行代码轻松拆分表格

    Python几行代码轻松拆分表格 作者:梅朵 微信公众号:实用办公编程技能 微信号:Excel-Python 什么?,Python几行代码竟然可以按指定轻松拆分表格? 将test.xls中的数据按地区 ...

  6. java redis 命令_命令界面:使用Java中的动态API处理Redis

    java redis 命令 Redis是一个数据存储,支持190多个文档化命令和450多个命令排列. 社区积极支持Redis开发: 每个主要的Redis版本都附带新命令. 今年,Redis向第三方供应 ...

  7. 定向输出命令_数据流的世界,带你了解Linux重定向

    今天,小编就带大家一起来看看数据重定向. 重定向:将原本输出到标准输出的数据重定向到一个文件中. 用于终端显示输出的特殊设备: IO重定向是为了改变默认输入.输出的位置: 输出重定向(标准输出STDO ...

  8. 创建模板_在 GNOME 中创建文档模板 | Linux 中国

    导读:制作模板可以让你更快地开始写作新的文档. 本文字数:1305,阅读时长大约:1分钟https://linux.cn/article-12699-1.html作者:Alan Formy-duval ...

  9. centos 命令行执行多个命令_命令行如何执行jar包里面的方法

    最近遇到一个尴尬的问题,由于公司机测试环境的机房迁移,导致办公区的网络跟测试环境网络之前延迟比较大,大到什么程度呢?大到不能正常使用测试环境. 由于网络组一直在排查,暂时没有答复,所以只能采取一个比较 ...

最新文章

  1. php ayui表格,layui表格使用
  2. python安装requests库超时_【Python 库】requests 详解超时和重试
  3. JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆
  4. 好文!研究生高效阅读的五大原则
  5. 万能钥匙也不能解开的wifi?那用Python帮你轻松解决
  6. 12月13日云栖精选夜读 | 干货 :5个提醒,让你远离“数据呆”
  7. 最不靠谱CEO,一句话让公司损失上千亿元
  8. LAMP/LNMP环境下:phpinfo php连接mysql php执行mysql查询 测试代码及响应
  9. pyqt5 点击开始执行_PyQt5教程——第一个程序(2)
  10. IXM317CQC回收IMX377CQT回收IMX307LQR-CIMX185LQJ-C回收IMX283CQT
  11. go mysql打印sql语句
  12. 谷歌云端硬盘快速下载方法_如何快速搜索Google云端硬盘
  13. 关于pr文件导入的问题
  14. Spring--AOP知识学习
  15. 安卓隐藏摄像_隐藏拍摄app
  16. Mybatis-Plus eq、ne、gt、lt、ge、le
  17. STM32开发笔记113:ADS1258驱动设计——读取温度值
  18. Python进行网页自动打卡系统
  19. 360WiFi文件夹存储位置如何更改
  20. 美团大众各自的10年创业路

热门文章

  1. 百度鹰眼html打开,BMap:WEB 服务API
  2. MacOS12+SublimeText+Skim无法正常跳转Skim的问题与解决
  3. 学习TeXworks编辑器(一)自定义快捷键详解
  4. python查看list_reverseiterator object中的内容
  5. 【word基础知识】word转pdf时出现空白页如何删除?
  6. python3识别条码_python3转换code128条形码的方法
  7. ajax获取301,PHP获取301重定向页面跳转后真实URL地址
  8. redlock java_分布式Redis的分布式锁Redlock
  9. vs能运行python吗_vs怎么运行python(vs能运行python吗)
  10. 树莓派linux系统识别u盘启动,使用U-Boot让树莓派从U盘启动