導讀:這一節將會介紹 Linux 命令行下的文件拆分與合併操作。
本文字數:2706,閱讀時長大約:3分鐘
作者:Psiace
作為一個工程師,我們經常與命令行打交道,但除了工作用的命令,你是否嘗試過讓命令來替代你生活中方方面面?
為了讓更多的愛好者可以用命令行作為自己的有效工具,Linux 中國特別邀請了三位作者,撰寫了《命令行生存指南》,希望可以通過這個系列的文章,讓你換一個視角,來看待命令行的存在。如果你想體驗一下不一樣的命令行,那就不妨來看看今天的《命令行生存指南》。
本次的內容為試讀內容,也歡迎你針對今天的內容提出自己的意見和建議。
操作概述
備份文件時常常涉及到大文件傳輸的問題,遇到網路質量不佳或者其他問題常常會導致傳輸中斷,而不得不進行重傳。如果採用先將大文件拆分成多個小文件進行傳輸、待全部傳輸完成後合併所有文件的方式,往往可以改善傳輸體驗。
這一節將會介紹 Linux 命令行下的文件拆分與合併操作。
概念和術語
拆分,顧名思義,就是將一個大的文件分割成若干個較小的文件,這些小文件按次序拼接後可以還原大文件。通常情況下,根據文件大小進行拆分是較為常見的方式;但由於文本文件具有行數特徵,所以除了按大小拆分之外,也可以按行數拆分。
合併,就是將若干個較小的文件拼接成一個較大文件。通常只需要按次序連接即可,相對比較簡單。
通常情況下,為確保拆分前和合併後的兩個文件相同,需要進行驗證。
操作實戰
場景一:使用 split 拆分文件
split
是 Linux 環境提供的文件拆分實用程序,同時支持二進位文件和文本文件。通常情況下已經隨 內置於系統中,無需另行安裝。
按大小拆分
二進位文件和文本文件按大小拆分時使用的選項不同:
◈ 二進位文件使用 選項指定分割後的文件大小。
◈ 文本文件則使用 選項指定分割後的文件大小。
二者用法類似,只需要:
以將 (約 2.4 GB)按 100MB 大小進行拆分為例:
可以看到原文件被拆分成 25 個更小的文件,從 aa 到 ay:
場景二:使用 cat 合併文件
cat
是 linux 環境提供的文件連接實用程序,能夠連接文件並將其輸出到標準輸出。通常情況下已經隨 內置於系統中,無需另行安裝。
值得注意的是,為了保證合併後的文件和原始文件一致,在有條件的情況下,可以用diff命令驗證。
合併拆分後的文件
使用cat合併文件可以採用cat [文件...] > [合併後的文件名]的格式,此方法對二進位文件和文本文件均有效。
以之前的 debian-live-aa 到 debian-live-ay 為例,合併時可以使用此命令:
可以看到目錄下會生成合併後的 文件。
使用 diff 驗證文件
只需要按diff [原文件] [現文件]的格式執行即可。如果沒有輸出,則證明兩個文件之間沒有差異。
以對比 和 為例:
小練習
◈ 嘗試以不同方式拆分系統中的日誌文件。