一些簡單的 Linux 命令能讓你根據(jù)需要分割以及重新組合文件,來適應(yīng)存儲或電子郵件附件大小的限制。
Linux 系統(tǒng)提供了一個非常易于使用的命令來分割文件。在將文件上傳到限制大小的存儲網(wǎng)站或者作為郵件附件之前,你可能需要執(zhí)行此操作。要將文件分割為多個文件塊,只需使用 split 命令。
$ split bigfile
默認情況下,split 命令使用非常簡單的命名方案。文件塊將被命名為 xaa、xab、xac 等,并且,大概地,如果你將足夠大的文件分割,你甚至可能會得到名為 xza 和 xzz 的塊。
除非你要求,否則該命令將無任何反饋地運行。但是,如果你想在創(chuàng)建文件塊時看到反饋,可以使用 --verbose 選項。
$ split –-verbose bigfile
creating 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 命令不會刪除你的原始文件,只是創(chuàng)建了文件塊。如果要指定文件塊的大小,可以使用 -b 選項將其添加到命令中。例如:
$ split -b100M bigfile
文件大小可以是 KB、MB,GB,最大可以是 YB!只需使 K、M、G、T、P、E、Z 和 Y 這些合適的字母。
如果要基于每個塊中的行數(shù)而不是字節(jié)數(shù)來拆分文件,那么可以使用 -l(行)選項。在此示例中,每個文件將有 1000 行,當(dāng)然,最后一個文件可能有較少的行。
$ 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
$ <== 無輸出 = 無差別
我唯一要提醒的一點的是,如果你經(jīng)常使用 split 并使用默認命名,那么某些文件塊可能會覆蓋其他的文件塊,甚至?xí)饶泐A(yù)期的更多,因為有些是更早之前分割的。
總結(jié)
以上所述是小編給大家介紹的使用 split 命令分割 Linux 文件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!