一些簡單的 Linux 命令能讓你根據需要分割以及重新組合檔案,來適應儲存或電子郵件附件大小的限制。
Linux 系統提供了一個非常易於使用的命令來分割檔案。在將檔案上傳到限制大小的儲存網站或者作為郵件附件之前,你可能需要執行此操作。要將檔案分割為多個檔案塊,只需使用 split
命令。
$ split bigfile
預設情況下,split
命令使用非常簡單的命名方案。檔案塊將被命名為 xaa
、xab
、xac
等,並且,大概地,如果你將足夠大的檔案分割,你甚至可能會得到名為 xza
和 xzz
的塊。
除非你要求,否則該命令將無任何反饋地執行。但是,如果你想在建立檔案塊時看到反饋,可以使用 --verbose
選項。
$ split –-verbose bigfilecreating file 'xaa'creating file 'xab'creating file 'xac'
你還可以給檔案命名字首。例如,要將你原始檔案分割並命名為 bigfile.aa
、bigfile.ab
等,你可以將字首新增到 split
命令的末尾,如下所示:
$ split –-verbose bigfile bigfile.creating file 'bigfile.aa'creating file 'bigfile.ab'creating file 'bigfile.ac'
請注意,上述命令中顯示的字首的末尾會新增一個點。否則,檔案將是 bigfileaa
之類的名稱,而不是 bigfile.aa
。
請注意,split
命令不會刪除你的原始檔案,只是建立了檔案塊。如果要指定檔案塊的大小,可以使用 -b
選項將其新增到命令中。例如:
$ split -b100M bigfile
檔案大小可以是 KB、MB,GB,最大可以是 YB!只需使 K、M、G、T、P、E、Z 和 Y 這些合適的字母。
如果要基於每個塊中的行數而不是位元組數來拆分檔案,那麼可以使用 -l
(行)選項。在此範例中,每個檔案將有 1000 行,當然,最後一個檔案可能有較少的行。
$ split --verbose -l1000 logfile log.creating file 'log.aa'creating file 'log.ab'creating file 'log.ac'creating file 'log.ad'creating file 'log.ae'creating file 'log.af'creating file 'log.ag'creating file 'log.ah'creating file 'log.ai'creating file 'log.aj'
如果你需要在遠端站點上重新組合檔案,那麼可以使用如下所示的 cat
命令輕鬆地完成此操作:
$ cat x?? > original.file$ cat log.?? > original.file
上面所示的分割和組合命令適合於二進位制和文字檔案。在此範例中,我們將 zip 二進位制檔案分割為 50KB 的塊,之後使用 cat
重新組合了它們,然後比較了組合後的檔案和原始檔案。diff
命令驗證檔案是否相同。
$ split --verbose -b50K zip zip.creating file 'zip.aa'creating file 'zip.ab'creating file 'zip.ac'creating file 'zip.ad'creating file 'zip.ae'$ cat zip.a? > zip.new$ diff zip zip.new$ <== 無輸出 = 無差別
我唯一要提醒的一點的是,如果你經常使用 split
並使用預設命名,那麼某些檔案塊可能會覆蓋其他的檔案塊,甚至會比你預期的更多,因為有些是更早之前分割的。