DD命令分割,合併檔案

2021-05-23 07:03:52 字數 1291 閱讀 3676

dd命令是linux下乙個非常有用的磁碟命令。它可以將指定大小的塊拷貝成乙個檔案,並在拷貝的同時執行指定的轉換。

unix已經提供了檔案切割功能,能完成這個功能的unix命令就是dd。

要切割的大檔案為dgjd,共98336321位元組,則:

dd if=dgjd of=zz1 bs=1 count=20000000

dd if=dgjd of=zz2 bs=1 count=20000000 skip=20000000

dd if=dgjd of=zz3 bs=1 count=20000000 skip=40000000

dd if=dgjd of=zz4 bs=1 count=20000000 skip=60000000

dd if=dgjd of=zz5 bs=1 count=18336321 skip=80000000

其中if(input filename)是要切割的大檔名,of(output filename)是切割後的子檔名,bs是指明以多少位元組作為乙個切割記錄單位,count是要切割的單位記錄數,skip是說明切割時的起點,單位同樣以bs設定值為準。通過上述五條指令就將dgjd大檔案切割成為4個2千萬位元組、1個18336321位元組的子檔案。要注意的是skip的值不能錯。 由此

也不難看出,dd切割是「非損耗」式的切割,並且支援從任意位置開始的任意大小的切割。

要將生成的zz1、zz2、zz3、zz4四個子檔案組裝為xdgjd,則:

dd if=zz1 of=xdgjd bs=1 count=20000000

dd if=zz2 of=xdgjd bs=1 count=20000000 seek=20000000

dd if=zz3 of=xdgjd bs=1 count=20000000 seek=40000000

dd if=zz4 of=xdgjd bs=1 count=20000000 seek=60000000

dd if=zz5 of=xdgjd bs=1 count=18336321 seek=80000000

其中skip引數改為seek引數,指明組裝的新大檔案xdgjd每次的開始位置是從檔案頭開始多少位元組。如果預設,則組裝從檔案頭開始,顯然這不是我們每次都希望的, 所以需用seek引數明確指出開始位置。通過以上5個指令,即可將5個子檔案重新組裝為乙個大檔案。將切割後生成的子檔案重新用ftp傳送,結果有的能夠順利傳送, 有的仍然導致網路癱瘓,不怕,繼續切割,切成每個一千萬位元組,再傳,ok!成功傳送!

參考:dd命令使用總結

Linux下分割 合併檔案 dd和cat

dd的作用是轉換和拷貝檔案,我們可以利用它來分割檔案,相關的選項如下 if filename 輸入的檔名 of finename 輸出的檔名 bs bytes 一次讀寫的位元組數,預設是512bytes skip blocks 拷貝前,跳過的輸入檔案的前blocks塊,塊的大小有bs決定 count...

Linux Centos檔案分割與合併命令

當乙個軟體或者工程太大,需要備份到網盤中,使用網盤的朋友都知道在你不是會員的時候,你上傳的檔案是有大小限制的,這個時候就會面臨如何將乙個大檔案進行切分,linux下的split命令是個很好的選擇。它包含多種引數,支援按行,大小進行檔案分割。split命令的語法如下 split help versio...

dd命令打包多個檔案 dd命令詳解

一 dd命令的解釋 dd 用指定大小的塊拷貝乙個檔案,並在拷貝的同時進行指定的轉換。注意 指定數字的地方若以下列字元結尾,則乘以相應的數 字 b 512 c 1 k 1024 w 2 引數注釋 1.if 檔名 輸入檔名,預設為標準輸入。即指定原始檔。if input file 2.of 檔名 輸出檔...