使用split命令分割Linux文件
一些簡單的 Linux 命令能讓你根據(jù)需要分割以及重新組合文件,來適應(yīng)存儲或電子郵件附件大小的限制。
Linux 系統(tǒng)提供了一個(gè)非常易于使用的命令來分割文件。在將文件上傳到限制大小的存儲網(wǎng)站或者作為郵件附件之前,你可能需要執(zhí)行此操作。要將文件分割為多個(gè)文件塊,只需使用 split 命令。
$ split bigfile
默認(rèn)情況下,split 命令使用非常簡單的命名方案。文件塊將被命名為 xaa、xab、xac 等,并且,大概地,如果你將足夠大的文件分割,你甚至可能會得到名為 xza 和 xzz 的塊。
除非你要求,否則該命令將無任何反饋地運(yùn)行。但是,如果你想在創(chuàng)建文件塊時(shí)看到反饋,可以使用 --verbose 選項(xiàng)。
$ 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'
請注意,上述命令中顯示的前綴的末尾會添加一個(gè)點(diǎn)。否則,文件將是 bigfileaa 之類的名稱,而不是 bigfile.aa。
請注意,split 命令不會刪除你的原始文件,只是創(chuàng)建了文件塊。如果要指定文件塊的大小,可以使用 -b 選項(xiàng)將其添加到命令中。例如:
$ split -b100M bigfile
文件大小可以是 KB、MB,GB,最大可以是 YB!只需使 K、M、G、T、P、E、Z 和 Y 這些合適的字母。
如果要基于每個(gè)塊中的行數(shù)而不是字節(jié)數(shù)來拆分文件,那么可以使用 -l(行)選項(xiàng)。在此示例中,每個(gè)文件將有 1000 行,當(dāng)然,最后一個(gè)文件可能有較少的行。
$ 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'
如果你需要在遠(yuǎn)程站點(diǎn)上重新組合文件,那么可以使用如下所示的 cat 命令輕松地完成此操作:
$ cat x?? > original.file$ cat log.?? > original.file
上面所示的分割和組合命令適合于二進(jìn)制和文本文件。在此示例中,我們將 zip 二進(jìn)制文件分割為 50KB 的塊,之后使用 cat 重新組合了它們,然后比較了組合后的文件和原始文件。diff 命令驗(yàn)證文件是否相同。
$ 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$ <== 無輸出 = 無差別
我唯一要提醒的一點(diǎn)的是,如果你經(jīng)常使用 split 并使用默認(rèn)命名,那么某些文件塊可能會覆蓋其他的文件塊,甚至?xí)饶泐A(yù)期的更多,因?yàn)橛行┦歉缰胺指畹摹?nbsp;





















