Linux文件的切割与合并
需求:
我們傳輸一個(gè)大文件時(shí),有時(shí)網(wǎng)絡(luò)比較慢,需要花費(fèi)很長(zhǎng)時(shí)間才能傳輸完成,或者傳輸?shù)倪^(guò)程中,網(wǎng)絡(luò)不穩(wěn)定,有可能導(dǎo)致此次傳輸失敗,針對(duì)這種情況,我們可以把大文件切分成小文件,再逐個(gè)的傳輸?shù)侥康牡?#xff0c;最后再把它們合并成一個(gè)文件
小文件傳輸有什么優(yōu)點(diǎn)呢?當(dāng)出現(xiàn)網(wǎng)絡(luò)閃斷導(dǎo)致傳輸失敗了,也只需要重新傳輸失敗的一個(gè)文件,由于文件比較小,重新傳輸相對(duì)大文件要快很多,另外,切割成小文件,可以增加傳輸?shù)牟l(fā)量,也就是說(shuō)多個(gè)小文件同時(shí)傳輸,比傳輸單個(gè)文件速度更快
Linux下切割文件的命令是 split 合并文件可以使用 cat 命令,下面將介紹這兩個(gè)命令的使用以及切割和合并文件的方法
語(yǔ)法:
split 命令的語(yǔ)法如下:
PREFIX 表示大文件分割后產(chǎn)生的小文件名字的前綴,默認(rèn)是小寫字母 x,前綴后跟一組字符 , 按照類似 aa、ab、ac 字母順序組成一個(gè)一個(gè)的文件名,比如:切割成三個(gè)文件,它們的文件名默認(rèn)就是 xaa、 xab、 xac
OPTION 表示命令的選項(xiàng),比如:按字節(jié)切割文件,按文件行切割文件等,下面列出了一些常用的選項(xiàng)
切割文件實(shí)例:
1) 按文件大小切割
創(chuàng)建一個(gè)100M的文件
切割成每個(gè)文件20M,并輸出日志
split -b 20M --verbose file
2) 指定切割成多少份
切割成10份,后綴使用數(shù)字不使用默認(rèn)字母,指定前綴
3) 按行分割
首先創(chuàng)建一個(gè) 10K 大小的文件, 文件的每一行內(nèi)容都是 “this is a test file”,并查看多少行
每100行切割一次
split -l 100 numfile禁止生產(chǎn)長(zhǎng)度為0的文件
由于切割的最小單位是1kb,如果5kb的文件切割為8份,就會(huì)有3個(gè)文件是0kb,所有這個(gè)時(shí)候就可以加上-e參數(shù)禁止生產(chǎn)0kb的文件
首先創(chuàng)建一個(gè)5kb的文件
將testfile分割為8份
split -n 8 -e testfile
#可以看出并沒(méi)有生產(chǎn)0字節(jié)的文件
切割與合并:
大文件切割成許多小文件,通過(guò)網(wǎng)絡(luò)全部傳輸?shù)竭h(yuǎn)程機(jī)器上之后,需要把它們合并成一個(gè)大文件,并且合并之后的大文件與原始的大文件要一模一樣,下面我們通過(guò)一個(gè)實(shí)例來(lái)說(shuō)明整個(gè)過(guò)程
1、 生成一個(gè)1G的文件用做分割和合并實(shí)驗(yàn)
2、 查看文件的MD5值,用于合并文件時(shí),檢驗(yàn)文件是否損壞
md5sum file3、 3、 將file文件分割成10份
split -n 10 -d file4、 將文件進(jìn)行合并
cat x* >new_file
5、 MD5值校驗(yàn)
#可以看出文件沒(méi)有問(wèn)題,這里有模擬了向遠(yuǎn)程主機(jī)切片傳輸文件,并合并的一個(gè)過(guò)程
總結(jié)
以上是生活随笔為你收集整理的Linux文件的切割与合并的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 本题要求编写程序,以hh:mm:ss的格
- 下一篇: 2013年NBA球员排名