Ⅰ 通過 11 個實例徹底掌握 linux Split 命令怎麼用
split 命令在 Linux 和 UNIX 系統中用於將文件拆分或分解成小塊。當我們使用 split 命令分割一個大文件時,輸出文件的默認大小是 1000 行,默認前綴為 x。
在本文中,我們將分享 11 個有用的 split 命令示例。除此之外,我們還將討論如何將分割的文件合並或重新組裝成單個文件。
split 命令語法如下:
# split {options} {file_name} {prefix}
code>
split 命令的一些重要選項如下所示:
(1) 將文件拆分為多個部分
將文件拆分為多個部分,示例如下:
# split tuxlap.txt
# lltotal 32-rw-------. 1 root root 980 Aug 12 00:11 anaconda-ks.cfg-rw-r--r--. 1 root root 9607 Nov 11 03:22 tuxlap.txt-rw-r--r--. 1 root root 8744 Nov 11 03:23 xaa-rw-r--r--. 1 root root 863 Nov 11 03:23 xab
#
code>
正如我們所看到的,tuxlab.txt 被分成了 xaa 和 xab 兩個部分。
(2) 帶有詳細選項的拆分命令
我們可以在詳細模式下運行 split 命令,使用 --verbose 選項
# split tuxlap.txt --verbosecreating file 『xaa』creating file 『xab』
#
code>
(3) 按行數拆分文件 (-l)
假設我們想要分割一個文件,每個文件最多 200 行。
# split -l200 tuxlap.txt --verbosecreating file 『xaa』creating file 『xab』creating file 『xac』creating file 『xad』creating file 『xae』creating file 『xaf』
#
code>
使用下面的命令驗證每個文件的行數
# wc -l xa* 200 xaa 200 xab 200 xac 200 xad 200 xae 91 xaf1091 total
#
code>
(4) 按文件大小拆分文件 (-b)
我們可以按文件大小拆分文件,單位為:bytes,KB,MB 和 GB
# split -b {bytes} {file_name}# split -b nK {file_name} // n is the numeric value# split -b nM {file_name} // n is the numeric value# split -b nG {file_name} // n is the numeric value
code>
按 Bytes 拆分文件
# split -b2000000 tuxlap.txt
code>
按 KB 拆分文件
# split -b 50K tuxlap.txt
code>
按 MB 拆分文件
# split -b 50M tuxlap.txt
code>
按 GB 拆分文件
# split -b 1G tuxlap.txt
code>
(5) 使用數字後綴創建拆分文件 (-d)
在上面的例子中,我們已經看到 split 命令輸出文件是用像 xaa, xab ... 這樣的字母後綴創建的。使用 -d 選項創建帶有數字後綴的分割輸出文件,如 x00, x01, x0n
# split -d tuxlap.txt
# lltotal 1024256-rw-------. 1 root root 980 Aug 12 00:11 anaconda-ks.cfg-rwx------. 1 root root 1048576000 Nov 11 03:54 linux-lite.iso-rw-r--r--. 1 root root 120010 Nov 11 04:39 tuxlap.txt-rw-r--r--. 1 root root 11998 Nov 11 04:41 x00-rw-r--r--. 1 root root 12000 Nov 11 04:41 x01-rw-r--r--. 1 root root 12000 Nov 11 04:41 x02-rw-r--r--. 1 root root 12000 Nov 11 04:41 x03-rw-r--r--. 1 root root 12000 Nov 11 04:41 x04-rw-r--r--. 1 root root 12000 Nov 11 04:41 x05-rw-r--r--. 1 root root 12000 Nov 11 04:41 x06-rw-r--r--. 1 root root 12000 Nov 11 04:41 x07-rw-r--r--. 1 root root 12000 Nov 11 04:41 x08-rw-r--r--. 1 root root 12000 Nov 11 04:41 x09-rw-r--r--. 1 root root 12 Nov 11 04:41 x10
#
code>
(6) 使用自定義後綴拆分文件
我們可以創建帶有自定義後綴的分割輸出文件,語法如下:
# split {file_name} {prefix_name}
code>
示例如下:
# split tuxlap.txt split_file_
# lltotal 1024248-rw-------. 1 root root 980 Aug 12 00:11 anaconda-ks.cfg-rwx------. 1 root root 1048576000 Nov 11 03:54 linux-lite.iso-rw-r--r--. 1 root root 11998 Nov 11 04:56 split_file_aa-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_ab-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_ac-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_ad-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_ae-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_af-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_ag-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_ah-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_ai-rw-r--r--. 1 root root 12000 Nov 11 04:56 split_file_aj-rw-r--r--. 1 root root 12 Nov 11 04:56 split_file_ak-rw-r--r--. 1 root root 120010 Nov 11 04:39 tuxlap.txt
#
code>
(7) 生成 n 塊輸出文件 (-n)
假設我們想把一個 iso 文件分成 5 個 chunk 輸出文件
# split -n5 linux-lite.iso
code>
使用 ls 命令驗證拆分文件
# lstotal 2048124-rw-------. 1 root root 980 Aug 12 00:11 anaconda-ks.cfg-rwx------. 1 root root 1048576000 Nov 11 03:54 linux-lite.iso-rw-r--r--. 1 root root 120010 Nov 11 04:39 tuxlap.txt-rw-r--r--. 1 root root 209715200 Nov 11 05:22 xaa-rw-r--r--. 1 root root 209715200 Nov 11 05:22 xab-rw-r--r--. 1 root root 209715200 Nov 11 05:22 xac-rw-r--r--. 1 root root 209715200 Nov 11 05:23 xad-rw-r--r--. 1 root root 209715200 Nov 11 05:23 xae
#
code>
(8)防止零大小分割輸出文件 (-e)
在某些情況下,我們將一個小文件分割成大量的塊文件,可能創建零大小的分割輸出文件,可以使用-e 選項避免這種情況的出現
# split -n60 -e tuxlap.txt
# ls -l x*-rw-r--r--. 1 root root 2000 Nov 11 05:34 xaa-rw-r--r--. 1 root root 2000 Nov 11 05:34 xab-rw-r--r--. 1 root root 2000 Nov 11 05:34 xac-rw-r--r--. 1 root root 2000 Nov 11 05:34 xad-rw-r--r--. 1 root root 2000 Nov 11 05:34 xae-rw-r--r--. 1 root root 2000 Nov 11 05:34 xaf-rw-r--r--. 1 root root 2000 Nov 11 05:34 xag-rw-r--r--. 1 root root 2000 Nov 11 05:34 xah.............-rw-r--r--. 1 root root 2000 Nov 11 05:34 xce-rw-r--r--. 1 root root 2000 Nov 11 05:34 xcf-rw-r--r--. 1 root root 2000 Nov 11 05:34 xcg-rw-r--r--. 1 root root 2010 Nov 11 05:34 xch
#
code>
(9) 創建自定義後綴長度的分割輸出文件 (-a)
假設我們想要分割一個 iso 文件,其中每個分割輸出文件的大小為 500MB,後綴長度為 3
# split -b 500M linux-lite.iso -a 3
# lltotal 2048124-rw-------. 1 root root 980 Aug 12 00:11 anaconda-ks.cfg-rwx------. 1 root root 1048576000 Nov 11 03:54 linux-lite.iso-rw-r--r--. 1 root root 120010 Nov 11 04:39 tuxlap.txt-rw-r--r--. 1 root root 524288000 Nov 11 05:43 xaaa-rw-r--r--. 1 root root 524288000 Nov 11 05:43 xaab
#
code>
(10) 拆分 ISO 文件並合並為單個文件
假設我們有一個 4.2 GB 大小的 Windows Server ISO 文件,我們無法將該文件 scp 到遠程伺服器。
為了解決這種問題,我們可以將 ISO 分成 n 個片段,並將這些片段復制到遠程伺服器,在遠程伺服器上,我們可以使用 cat 命令將這些片段合並為一個文件
# split -b 800M Windows2012r2.iso Split_IS0_
code>
使用 ls 命令查看分割輸出文件
# lltotal 8871788-rw-------. 1 root root 980 Aug 12 00:11 anaconda-ks.cfg-rw-r--r--. 1 root root 838860800 Nov 11 06:29 Split_IS0_aa-rw-r--r--. 1 root root 838860800 Nov 11 06:29 Split_IS0_ab-rw-r--r--. 1 root root 838860800 Nov 11 06:29 Split_IS0_ac-rw-r--r--. 1 root root 838860800 Nov 11 06:29 Split_IS0_ad-rw-r--r--. 1 root root 838860800 Nov 11 06:29 Split_IS0_ae-rw-r--r--. 1 root root 347987968 Nov 11 06:29 Split_IS0_af-rw-r--r--. 1 root root 120010 Nov 11 04:39 tuxlap.txt-rwx------. 1 root root 4542291968 Nov 11 06:03 Windows2012r2.iso
#
code>
將這些文件 scp 到遠程伺服器,並使用 cat 命令將這些文件合並為一個文件
# cat Split_IS0_a* Windows_Server.iso
#
code>
(11) 使用 md5sum 驗證合並文件的完整性
如例 10 所示,分割文件合並為單個文件後,我們就可以使用 md5sum 工具檢查文件的完整性。示例如下
# md5sum Windows2012r2. Windows2012r2.iso
#
# md5sum Windows_Server. Windows_Server.iso
#
code>
根據上面的輸出,可以確認文件的完整性,我們也可以說分割文件成功恢復為單個文件。
Ⅱ linux 常用命令要具體例子
1、cd命令:這是一個非常基本,也是大家經常需要使用的命令,它用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。
cd /root/Docements #切換到目錄/root/Docements
2、ls命令:這是一個非常有用的查看文件與目錄的命令,list之意,它的參數非常多。
ls -l #以長數據串的形式列出當前目錄下的數據文件和目錄
3、grep命令:該命令常用於分析一行的信息,若當中有我們所需要的信息,就將該行顯示出來,該命令通常與管道命令一起使用,用於對一些命令的輸出進行篩選加工等等。
4、find命令:find是一個基於查找的功能非常強大的命令。
find / -name passwd#查找文件名為passwd的文件
5、cp命令:該命令用於復制文件,之意,它還可以把多個文件一次性地復制到一個目錄下。
cp file1 file2 file3 dir#把文件file1、file2、file3復制到目錄dir中
6、mv命令:該命令用於移動文件、目錄或更名,move之意。
mv file1 file2#把文件file1重命名為file2
7、rm命令:該命令用於刪除文件或目錄,是remove的縮寫。
rm -fr dir#強制刪除目錄dir中的所有文件
8、ps命令:該命令用於將某個時間點的進程運行情況選取下來並輸出,process之意。
9、tar命令:該命令用於對文件進行打包,默認情況並不會壓縮,如果指定了相應的參數,它還會調用相應的壓縮程序(如gzip和bzip等)進行壓縮和解壓。
10、cat命令:該命令用於查看文本文件的內容,後接要查看的文件名,通常可用管道與more和less一起使用,從而可以一頁頁地查看數據。
cat text | less