当前位置: 首页 > 科技观察

命令行生存指南:拆分与合并

时间:2023-03-15 17:15:07 科技观察

作为一名工程师,我们经常和命令行打交道,但除了工作的命令,你有没有试过让命令取代生活的方方面面?为了让更多的爱好者能够将命令行作为一种对自己有效的工具来使用,Linux中国特地请来了三位作者撰文《命令行生存指南》,希望通过这一系列的文章,能够让大家从不同的角度来看待命令行。在场。想要体验不一样的命令行,不妨看看今天的《命令行生存指南》。操作概述备份文件通常涉及大文件的传输。网络质量差或者其他问题经常会导致传输中断,不得不重传。如果采用将一个大文件拆分成多个小文件进行传输,传输完成后再合并所有文件的方式,往往可以提升传输体验。本节将介绍Linux命令行下的文件拆分和合并操作。概念术语拆分,顾名思义,就是将一个大文件分成若干个较小的文件,这些小文件按顺序拼接后可以恢复。通常,按照文件大小进行拆分是比较常见的方式;但由于文本文件具有行数的特点,所以除了按大小拆分外,还可以按行数拆分。合并就是将几个较小的文件合并为一个较大的文件。通常只需要按顺序连接即可,比较简单。通常,需要验证以确保两个文件在拆分之前和合并之后是相同的。实战场景一:使用split分割文件难点★Demo发行版Fedora32涉及命令splitsplit是Linux环境提供的文件分割工具,支持二进制文件和文本文件。通常它已经通过coreutils内置到系统中,不需要额外安装。按大小拆分二进制文件和按大小拆分文本文件的选项不同:二进制文件使用-b选项指定拆分后的文件大小。对于文本文件,使用-C选项指定拆分文件的大小。两者用法类似,只需要:split[option][size][待拆分文件][拆分后前缀(可选)]到debian-live-10.5.0-amd64-lxqt.iso(约2.4GB)以100MB大小分割为例:>split-b100Mdebian-live-10.5.0-amd64-lxqt.isodebian-live-可以看到原文件被分割成25个小文件,从aa到ay:debian-live-aadebian-live-addebian-live-agdebian-live-ajdebian-live-amdebian-live-apdebian-live-asdebian-live-avdebian-live-aydebian-live-abdebian-live-aedebian-live-ahdebian-live-akdebian-live-andebian-live-aqdebian-live-atdebian-live-awdebian-live-acdebian-live-afdebian-live-aidebian-live-aldebian-live-aodebian-live-ardebian-live-audebian-live-ax场景2:使用cat合并文件时遇到困难Demo发布版本Fedora32涉及命令cat和diffcat是linux文件连接实用程序由能够连接文件并将它们输出到标准输出的环境提供。通常它已经通过coreutils内置到系统中,不需要额外安装。值得注意的是,为保证合并后的文件与原文件一致,如果条件允许可以使用diff命令进行验证。合并拆分文件使用cat合并文件,格式为cat[文件...]>[合并文件的名称],此方法对二进制文件和文本文件均有效。以之前的debian-live-aa到debian-live-ay为例,合并时可以使用这个命令:>catdebian-live-*>debian-live.iso可以看到合并后的debian-live会是在目录中生成.iso文件。debian-live-aadebian-live-addebian-live-agdebian-live-ajdebian-live-amdebian-live-apdebian-live-asdebian-live-avdebian-live-aydebian-live-abdebian-live-aedebian-live-ahdebian-live-akdebian-live-andebian-live-aqdebian-live-atdebian-live-awdebian-live.isodebian-live-acdebian-live-afdebian-live-aidebian-live-aldebian-live-aodebian-live-ardebian-live-audebian-live-ax使用diff验证文件只需要以diff[原始文件][当前文件]的格式执行.如果没有输出,证明两个文件没有区别。以debian-live-10.5.0-amd64-lxqt.iso与debian-live.iso的对比为例:>diffdebian-live-10.5.0-amd64-lxqt.isodebian-live.iso>#No输出,表示两者相同。小练习尝试以不同方式拆分系统上的日志文件。Linux中国官网延伸阅读《使用 split 命令分割 Linux 文件》也介绍了文件的拆分和合并。