Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux split 大檔案分割與合併完整指南

編輯:Linux 教學

前言

split 將大檔案切割為多個小檔案,便於傳輸、儲存、並行處理。對應合併用 cat。本文詳細說明參數、單位、命名規則與實戰範例。

語法與參數


split [選項] [輸入檔] [輸出前綴]
# 輸出檔名 = 前綴 + 後綴 (預設 aa, ab, ac ... xaa, xab ...)
參數功能範例
-l N / -N每 N 行切一檔 (預設 1000 行)split -l 5000 big.log chunk_
-b SIZE每 SIZE 位元組切一檔,支援 K/M/Gsplit -b 100M big.iso part_
-C SIZE類似 -b,但盡量保持行完整 (不斷行)split -C 50M big.csv part_
-d數字後綴 (00, 01, 02...) 替代字母split -d -b 10M file part_
-a N後綴長度 (預設 2)split -a 3 -b 1M f p_ → p_000, p_001
--verbose顯示每個輸出檔名
--filter=CMD輸出管線導向指令 (如壓縮、上傳)split -b 100M --filter='gzip > $FILE.gz' big.iso

實戰範例

  1. 依大小分割 ISO
    
    split -b 2G -d ubuntu-22.04.iso ubuntu-22.04.iso.part
    # 產生 ubuntu-22.04.iso.part00, part01 ...
        
  2. 依行數分割日誌
    
    split -l 100000 -d access.log access.log.part
        
  3. 分割並即時壓縮
    
    split -b 100M --filter='gzip > $FILE.gz' huge.sql dump_
    # 產生 dump_00.gz, dump_01.gz ...
        

合併還原


# 合併分割檔 (順序正確即可)
cat ubuntu-22.04.iso.part* > ubuntu-22.04.iso
# 或
cat part00 part01 part02 > original.file

# 驗證完整性
md5sum original.iso ubuntu-22.04.iso
# 兩者 checksum 一致即成功

進階:並行處理


# 分割後並行壓縮/上傳
split -b 50M -d bigfile part_
ls part_* | xargs -P 4 -I{} gzip {}   # 4 核心並行壓縮
ls part_*.gz | xargs -P 4 -I{} scp {} user@host:/dst/

注意事項

  • split 不修改原檔,僅讀取。
  • 檔案系統 inode 足夠 (大量小檔會消耗 inode)。
  • 合併時確保順序正確 (字母/數字排序)。
  • 文字檔建議用 -C 保持行完整,避免 JSON/CSV 斷行導致解析錯誤。

總結

split -b/-l/-C 靈活切割,cat 無損合併,--filter 串聯壓縮/上傳,構成大檔案處理鐵三角。掌握單位 (K/M/G)、後綴控制 (-d -a)、驗證校驗和,即可應對備份、傳輸、日誌輪轉等場景。

Copyright © Windows教程網 All Rights Reserved