命令列中的拆分與合併
導讀 | 備份檔案時常常涉及到大檔案傳輸的問題,遇到網路質量不佳或者其他問題常常會導致傳輸中斷,而不得不進行重傳。如果採用先將大檔案拆分成多個小檔案進行傳輸、待全部傳輸完成後合併所有檔案的方式,往往可以改善傳輸體驗。這一節將會介紹 行下的檔案拆分與合併操作。 |
作為一個工程師,我們經常與 行打交道,但除了工作用的命令,你是否嘗試過讓命令來替代你生活中方方面面?
為了讓更多的愛好者可以用命令列作為自己的有效工具,Linux 中國特別邀請了三位作者,撰寫了《命令列生存指南》,希望可以透過這個系列的文章,讓你換一個視角,來看待命令列的存在。如果你想體驗一下不一樣的命令列,那就不妨來看看今天的《命令列生存指南》。
備份檔案時常常涉及到大檔案傳輸的問題,遇到網路質量不佳或者其他問題常常會導致傳輸中斷,而不得不進行重傳。如果採用先將大檔案拆分成多個小檔案進行傳輸、待全部傳輸完成後合併所有檔案的方式,往往可以改善傳輸體驗。
這一節將會介紹 Linux 命令列下的檔案拆分與合併操作。
拆分,顧名思義,就是將一個大的檔案分割成若干個較小的檔案,這些小檔案按次序拼接後可以還原大檔案。通常情況下,根據檔案大小進行拆分是較為常見的方式;但由於文字檔案具有行數特徵,所以除了按大小拆分之外,也可以按行數拆分。
合併,就是將若干個較小的檔案拼接成一個較大檔案。通常只需要按次序連線即可,相對比較簡單。
通常情況下,為確保拆分前和合並後的兩個檔案相同,需要進行驗證。
plit 是 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-ay debian-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-ac debian-live-af debian-live-ai debian-live-al debian-live-ao debian-live-ar debian-live-au debian-live-ax
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-ay debian-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.iso debian-live-ac debian-live-af debian-live-ai debian-live-al debian-live-ao debian-live-ar debian-live-au debian-live-ax
只需要按 diff [原檔案] [現檔案] 的格式執行即可。如果沒有輸出,則證明兩個檔案之間沒有差異。
以對比 debian-live-10.5.0-amd64-lxqt.iso 和 debian-live.iso 為例:
> diff debian-live-10.5.0-amd64-lxqt.iso debian-live.iso > # 無輸出,表示二者是相同的。
嘗試以不同方式拆分系統中的日誌檔案。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2739760/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Goldengate的拆分與合併Go
- java 拆分與合併字串Java字串
- 請求合併與拆分在併發場景中應用
- opencv 影像的 ROI、通道的拆分與合併OpenCV
- 資料檔案合併與拆分
- Oracle 11g 分割槽拆分與合併Oracle
- Java與JavaScript 完美實現字串拆分(利用陣列儲存)與合併的互逆操作JavaScript字串陣列
- C#陣列 多個集合和陣列的操作(合併,去重,拆分,判斷)C#陣列
- Hive列合併與元素蒐集Hive
- PDFsam Basic for mac合併拆分PDF文件Mac
- linux檔案合併、去重、拆分Linux
- Git -- 分支與合併 (命令列+視覺化工具p4merge)Git命令列視覺化
- NumPy 陣列迭代與合併詳解陣列
- 合併陣列陣列
- 合併陣列物件中相同的屬性值陣列物件
- MySQL 合併查詢join 查詢出的不同列合併到一個表中MySql
- FLEX合併陣列Flex陣列
- AUTOCAD——合併命令
- 奇酷手機怎麼合併和拆分聯絡人 奇酷手機怎麼合併和拆分聯絡人教程
- GridView列相同合併View
- AUTOCAD——文字合併命令
- Aspose.Words使用教程之如何寫入純文字(TXT)檔案,表的合併與拆分
- SQLServer中多行中的一列根據條件合併為一行中的一列SQLServer
- iOS拆分,合併靜態庫以壓縮打包空間iOS
- PDF Merge PDF Splitter for Mac(PDF合併和拆分軟體)Mac
- php合併陣列的幾種方式PHP陣列
- 合併JavaScript陣列的N種方法JavaScript陣列
- JS--陣列物件合併JS陣列物件
- 合併兩個有序陣列陣列
- pandas 兩列資料合併
- JavaScript concat()合併陣列JavaScript陣列
- mysql-列合併成行方式MySql
- 藍橋杯-合併數列
- 合併與拆分資料模型(MSDM:Merging & Spliting Data Modeling)模型
- Windows XP中的命令列命令Windows命令列
- ETL中雙流合併和多流合併的區別
- Git 分支與合併Git
- el-table 合併相同資料的列