Linux中dd命令使用实例教程
<p>本文主要给大家介绍了关于Linux中dd命令使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:</p>
<p>
<span><strong>一、Linux dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。</strong></span></p>
<p>
使用方法:<code>dd </code></p>
<p>
<strong>参数注释:</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_307314">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">bs=BYTES read and write BYTES bytes at a time (also see ibs=,obs=)</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">cbs=BYTES convert BYTES bytes at a time</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">conv=CONVS convert the file as per the comma separated symbol list</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">count=N copy only N input blocks</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">ibs=BYTES read BYTES bytes at a time (default: 512)</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">if=FILE read from FILE instead of stdin(默认为标准输入)</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">iflag=FLAGS read as per the comma separated symbol list</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">obs=BYTES write BYTES bytes at a time (default: 512)</code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">of=FILE write to FILE instead of stdout(默认为标准输出)</code>
</div>
<div class="line number10 index9 alt1">
<code class="plain plain">oflag=FLAGS write as per the comma separated symbol list</code>
</div>
<div class="line number11 index10 alt2">
<code class="plain plain">seek=BLOCKS skip BLOCKS obs-sized blocks at start of output</code>
</div>
<div class="line number12 index11 alt1">
<code class="plain plain">skip=BLOCKS skip BLOCKS ibs-sized blocks at start of input</code>
</div>
<div class="line number13 index12 alt2">
<code class="plain plain">status=WHICH WHICH info to suppress outputting to stderr;</code>
</div>
<div class="line number14 index13 alt1">
<code class="plain spaces"> </code><code class="plain plain">'noxfer' suppresses transfer stats, 'none' suppresses all</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>CONVS的可选参数</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_413188">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">ascii from EBCDIC to ASCII</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">ebcdic from ASCII to EBCDIC</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">ibm from ASCII to alternate EBCDIC</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">block pad newline-terminated records with spaces to cbs-size</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">unblock replace trailing spaces in cbs-size records with newline</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">lcase change upper case to lower case</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">nocreat do not create the output file</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">excl fail if the output file already exists</code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">notrunc do not truncate the output file</code>
</div>
<div class="line number10 index9 alt1">
<code class="plain plain">ucase change lower case to upper case</code>
</div>
<div class="line number11 index10 alt2">
<code class="plain plain">sparse try to seek rather than write the output for NUL input blocks</code>
</div>
<div class="line number12 index11 alt1">
<code class="plain plain">swab swap every pair of input bytes</code>
</div>
<div class="line number13 index12 alt2">
<code class="plain plain">noerror continue after read errors</code>
</div>
<div class="line number14 index13 alt1">
<code class="plain plain">sync pad every input block with NULs to ibs-size; when used</code>
</div>
<div class="line number15 index14 alt2">
<code class="plain spaces"> </code><code class="plain plain">with block or unblock, pad with spaces rather than NULs</code>
</div>
<div class="line number16 index15 alt1">
<code class="plain plain">fdatasync physically write output file data before finishing</code>
</div>
<div class="line number17 index16 alt2">
<code class="plain plain">fsync likewise, but also write metadata</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>FLAGS的可选参数</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_4777">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">append append mode (makes sense only for output; conv=notrunc suggested)</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">direct use direct I/O for data</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">directory fail unless a directory</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">dsync use synchronized I/O for data</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">sync likewise, but also for metadata</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">fullblock accumulate full blocks of input (iflag only)</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">nonblock use non-blocking I/O</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">noatime do not update access time</code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">noctty do not assign controlling terminal from file</code>
</div>
<div class="line number10 index9 alt1">
<code class="plain plain">nofollow do not follow symlinks</code>
</div>
<div class="line number11 index10 alt2">
<code class="plain plain">count_bytes treat 'count=N' as a byte count (iflag only)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>注意:</strong></span>指定数字的地方若以下列字符结尾,则乘以相应的数字:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_635701">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M</code>
</div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>二、使用实例</strong></span></p>
<p>
<strong>1、将本地的/dev/hdb整盘备份到/dev/hdd</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_275427">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=</code><code class="bash plain">/dev/hdb</code> <code class="bash plain">of=</code><code class="bash plain">/dev/hdd</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>2、将/dev/hdb全盘数据备份到指定路径的image文件</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_983114">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=</code><code class="bash plain">/dev/hdb</code> <code class="bash plain">of=</code><code class="bash plain">/root/image</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>3、备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_102023">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=</code><code class="bash plain">/dev/hdb</code> <code class="bash plain">| </code><code class="bash functions">gzip</code> <code class="bash plain">> </code><code class="bash plain">/root/image</code><code class="bash plain">.gz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>4、把一个文件拆分为3个文件</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_184241">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#文件大小为2.3k</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">$ ll db1_db_links.sql </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">-rw-r--r-- 1 oracle oinstall 2344 Nov 21 10:39 db1_db_links.sql</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash comments">#把这个文件拆成每个文件1k,bs=1k,count=1,使用skip参数指定在输入文件中跳过多少个bs支读取</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">$ </code><code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=db1_db_links.sql of=dd01.sql bs=1k count=1</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">1+0 records </code><code class="bash keyword">in</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">1+0 records out</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">1024 bytes (1.0 kB) copied, 4.5536e-05 s, 22.5 MB</code><code class="bash plain">/s</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">$ </code><code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=db1_db_links.sql of=dd02.sql bs=1k count=1 skip=1</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">1+0 records </code><code class="bash keyword">in</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">1+0 records out</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">1024 bytes (1.0 kB) copied, 0.000146387 s, 7.0 MB</code><code class="bash plain">/s</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">$ </code><code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=db1_db_links.sql of=dd03.sql bs=1k count=1 skip=2</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">0+1 records </code><code class="bash keyword">in</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">0+1 records out</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash plain">296 bytes (296 B) copied, 0.000204216 s, 1.4 MB</code><code class="bash plain">/s</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash comments">#拆分出的文件</code>
</div>
<div class="line number18 index17 alt1">
<code class="bash plain">$ ll </code><code class="bash functions">dd</code><code class="bash plain">*sql</code>
</div>
<div class="line number19 index18 alt2">
<code class="bash plain">-rw-r--r-- 1 oracle oinstall 1024 May 20 14:58 dd01.sql</code>
</div>
<div class="line number20 index19 alt1">
<code class="bash plain">-rw-r--r-- 1 oracle oinstall 1024 May 20 14:58 dd02.sql</code>
</div>
<div class="line number21 index20 alt2">
<code class="bash plain">-rw-r--r-- 1 oracle oinstall 296 May 20 14:58 dd03.sql</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>5、把拆分出的文件合并为1个</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_819387">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#合并操作,此时用到seek参数,用于指定在输入文件中跳过的bs数</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">$ </code><code class="bash functions">dd</code> <code class="bash plain">of=1.sql </code><code class="bash keyword">if</code><code class="bash plain">=dd01.sql </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">2+0 records </code><code class="bash keyword">in</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">2+0 records out</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">1024 bytes (1.0 kB) copied, 0.000176 s, 5.8 MB</code><code class="bash plain">/s</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">$ </code><code class="bash functions">dd</code> <code class="bash plain">of=1.sql </code><code class="bash keyword">if</code><code class="bash plain">=dd02.sql bs=1k seek=1</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">1+0 records </code><code class="bash keyword">in</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">1+0 records out</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">1024 bytes (1.0 kB) copied, 0.000124038 s, 8.3 MB</code><code class="bash plain">/s</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">$ </code><code class="bash functions">dd</code> <code class="bash plain">of=1.sql </code><code class="bash keyword">if</code><code class="bash plain">=dd03.sql bs=1k seek=2</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">0+1 records </code><code class="bash keyword">in</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">0+1 records out</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">296 bytes (296 B) copied, 0.00203881 s, 145 kB</code><code class="bash plain">/s</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash comments">#与拆分前的文件进行校验</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">$ </code><code class="bash functions">diff</code> <code class="bash plain">1.sql db1_db_links.sql</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash plain">$</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>6、在输出文件中指定的位置插入数据,而不截断输出文件</strong></p>
<p>
需要使用<code>conv=notrunc</code>参数</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_163740">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=2.sql of=1.sql bs=1k seek=1 count=2 conv=notrunc</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
原文链接:http://www.linuxidc.com/Linux/2017-05/144021.htm</p>
頁:
[1]