Linux中關于dd命令的使用實例教程

dd命令用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。下面這篇文章主要給大家介紹了關于linux中dd命令使用的相關資料,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

本文主要給大家介紹了關于linux中dd命令使用的相關內容,分享出來供大家參考學習,下面來看看詳細的介紹:

一、Linux dd命令用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。

使用方法:dd [OPERAND]

參數linux

?bs=BYTES??read?and?write?BYTES?bytes?at?a?time?(also?see?ibs=,obs=)  ?cbs=BYTES??convert?BYTES?bytes?at?a?time  ?conv=CONVS??convert?the?file?as?per?the?comma?separated?symbol?list  ?count=N???copy?only?N?input?blocks  ?ibs=BYTES??read?BYTES?bytes?at?a?time?(default:?512)  ?if=FILE???read?from?FILE?instead?of?stdin(默認為標準輸入)  ?iflag=FLAGS??read?as?per?the?comma?separated?symbol?list  ?obs=BYTES??write?BYTES?bytes?at?a?time?(default:?512)  ?of=FILE???write?to?FILE?instead?of?stdout(默認為標準輸出)  ?oflag=FLAGS??write?as?per?the?comma?separated?symbol?list  ?seek=BLOCKS??skip?BLOCKS?obs-sized?blocks?at?start?of?output  ?skip=BLOCKS??skip?BLOCKS?ibs-sized?blocks?at?start?of?input  ?status=WHICH?WHICH?info?to?suppress?outputting?to?stderr;  ?????'noxfer'?suppresses?transfer?stats,?'none'?suppresses?all

CONVS的可選參數

?ascii??from?EBCDIC?to?ASCII  ?ebcdic?from?ASCII?to?EBCDIC  ?ibm??from?ASCII?to?alternate?EBCDIC  ?block??pad?newline-terminated?records?with?spaces?to?cbs-size  ?unblock?replace?trailing?spaces?in?cbs-size?records?with?newline  ?lcase??change?upper?case?to?lower?case  ?nocreat?do?not?create?the?output?file  ?excl??fail?if?the?output?file?already?exists  ?notrunc?do?not?truncate?the?output?file  ?ucase??change?lower?case?to?upper?case  ?sparse?try?to?seek?rather?than?write?the?output?for?NUL?input?blocks  ?swab??swap?every?pair?of?input?bytes  ?noerror?continue?after?read?errors  ?sync??pad?every?input?block?with?NULs?to?ibs-size;?when?used  ???with?block?or?unblock,?pad?with?spaces?rather?than?NULs  ?fdatasync?physically?write?output?file?data?before?finishing  ?fsync??likewise,?but?also?write?metadata

FLAGS的可選參數

?append?append?mode?(makes?sense?only?for?output;?conv=notrunc?suggested)  ?direct?use?direct?I/O?for?data  ?directory?fail?unless?a?directory  ?dsync??use?synchronized?I/O?for?data  ?sync??likewise,?but?also?for?metadata  ?fullblock?accumulate?full?blocks?of?input?(iflag?only)  ?nonblock?use?non-blocking?I/O  ?noatime?do?not?update?access?time  ?noctty?do?not?assign?controlling?terminal?from?file  ?nofollow?do?not?follow?symlinks  ?count_bytes?treat?'count=N'?as?a?byte?count?(iflag?only)

注意:指定數字的地方若以下列字符結尾,則乘以相應的數字:

c?=1,?w?=2,?b?=512,?kB?=1000,?K?=1024,?MB?=1000*1000,?M?=1024*1024,?xM?=M    GB?=1000*1000*1000,?G?=1024*1024*1024,?and?so?on?for?T,?P,?E,?Z,?Y

二、使用實例

1、將本地的/dev/hdb整盤備份到/dev/hdd

dd?if=/dev/hdb?of=/dev/hdd

2、將/dev/hdb全盤數據備份到指定路徑的image文件

dd?if=/dev/hdb?of=/root/image

3、備份/dev/hdb全盤數據,并利用glinux工具進行壓縮,保存到指定路徑

dd?if=/dev/hdb?|?gzip?>?/root/image.gz

4、把一個文件拆分為3個文件

#文件大小為2.3k  [Oracle@rhel6?~]$?ll?db1_db_links.sql?  -rw-r--r--?1?oracle?oinstall?2344?Nov?21?10:39?db1_db_links.sql  #把這個文件拆成每個文件1k,bs=1k,count=1,使用skip參數指定在輸入文件中跳過多少個bs支讀取  [oracle@rhel6?~]$?dd?if=db1_db_links.sql?of=dd01.sql?bs=1k?count=1  1+0?records?in  1+0?records?out  1024?bytes?(1.0?kB)?copied,?4.5536e-05?s,?22.5?MB/s  [oracle@rhel6?~]$?dd?if=db1_db_links.sql?of=dd02.sql?bs=1k?count=1?skip=1  1+0?records?in  1+0?records?out  1024?bytes?(1.0?kB)?copied,?0.000146387?s,?7.0?MB/s  [oracle@rhel6?~]$?dd?if=db1_db_links.sql?of=dd03.sql?bs=1k?count=1?skip=2  0+1?records?in  0+1?records?out  296?bytes?(296?B)?copied,?0.000204216?s,?1.4?MB/s  #拆分出的文件  [oracle@rhel6?~]$?ll?dd*sql  -rw-r--r--?1?oracle?oinstall?1024?May?20?14:58?dd01.sql  -rw-r--r--?1?oracle?oinstall?1024?May?20?14:58?dd02.sql  -rw-r--r--?1?oracle?oinstall?296?May?20?14:58?dd03.sql

5、把拆分出的文件合并為1個

#合并操作,此時用到seek參數,用于指定在輸入文件中跳過的bs數  [oracle@rhel6?~]$?dd?of=1.sql?if=dd01.sql?  2+0?records?in  2+0?records?out  1024?bytes?(1.0?kB)?copied,?0.000176?s,?5.8?MB/s  [oracle@rhel6?~]$?dd?of=1.sql?if=dd02.sql?bs=1k?seek=1  1+0?records?in  1+0?records?out  1024?bytes?(1.0?kB)?copied,?0.000124038?s,?8.3?MB/s  [oracle@rhel6?~]$?dd?of=1.sql?if=dd03.sql?bs=1k?seek=2  0+1?records?in  0+1?records?out  296?bytes?(296?B)?copied,?0.00203881?s,?145?kB/s  #與拆分前的文件進行校驗  [oracle@rhel6?~]$?diff?1.sql?db1_db_links.sql  [oracle@rhel6?~]$

6、在輸出文件中指定的位置linux,而不截斷輸出文件

需要使用conv=notrunc參數

[oracle@rhel6?~]$?dd?if=2.sql?of=1.sql?bs=1k?seek=1?count=2?conv=notrunc

總結

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享