天天看點

Linux 特殊指令--dd 及Linux更新檔制作

一、dd 指令詳解:

        官方解釋: convert and copy a file ---轉換并複制檔案

        dd 是 Linux/UNIX 下的一個非常有用的指令,作用是用指定大小的塊拷貝一個檔案,并在拷貝的同時進行指定的轉換

文法:

       dd [OPERAND]...

       dd OPTION

參數:

       if=FILE       read from FILE instead of stdin

                 源檔案,用于指定資料流來源     

       of=FILE     write to FILE instead of stdout 

                目标檔案,用于指定資料流存儲目标

       bs=BYTES      read and write BYTES bytes at a time (also see ibs=,obs=)

                一次io的資料量

       count=N         copy only N input blocks

                複制多少個bs指定的block

格式:

                dd if= of= bs= count=

兩個特殊裝置檔案

                /dev/null: bit bucket  号稱資料黑洞,你可以向他輸入任何資訊,而不會有任何輸出

                /dev/zero: 是一個輸入裝置,你可用它來初始化檔案;該裝置可以無窮盡的提供0字元串,該裝置可用于向檔案或裝置寫入字元串0;

eg:建立一個大小為64M的檔案

<code>[root@1inux tmp]# </code><code>mkdir</code> <code>zero</code>

<code>[root@1inux tmp]# cd zero</code>

<code>[root@1inux zero]# ls -l</code>

<code>total 0</code>

<code>[root@1inux zero]# dd </code><code>if</code><code>=/dev/zero of=/tmp/zero/file bs=1M </code><code>count</code><code>=64</code>

<code>64+0 records in</code>

<code>64+0 records out</code>

<code>67108864 bytes (67 MB) copied, 0.434439 s, 154 MB/s</code>

<code>[root@1inux zero]# ls -lh</code>

<code>total 64M</code>

<code>-rw-r--r-- 1 root root 64M Apr  1 16:42 file</code>

應用執行個體:

        應用1:建立本地回環裝置檔案:

<code>dd </code><code>if</code><code>=/dev/zero of=/PATH/TO/SOMEFILE bs= </code><code>count</code><code>=</code>

        應用2:備份磁盤開始的512個位元組大小的MBR資訊到指定檔案:

<code>dd </code><code>if</code><code>=/dev/sda of=/backup/mbr.backup bs=512 </code><code>count</code><code>=1</code>

恢複MBR

<code>dd </code><code>if</code><code>=/backup/mbr.backup of=/dev/sda</code>

        應用3:破壞其MBR (瞬間破壞其分區表,極度具有破壞性)

<code>dd </code><code>if</code><code>=/dev/zero of=/dev/sda bs=512 </code><code>count</code><code>=1</code>

        應用4、銷毀磁盤資料

<code>[root@1inux zero]# dd </code><code>if</code><code>=/dev/urandom of=/dev/sdb</code>

二、文本比較、更新檔制作及打更新檔工具----diff,patch 

diff 指令

               diff指令 是 linux上非常重要的工具,用于比較檔案的内容,特别是比較兩個版本不同的檔案以找到改動的地方

    指令格式:

            diff[參數][檔案1或目錄1][檔案2或目錄2]

Linux更新檔制作

        diff [-u] FILE.old FILE.new &gt;FILE.patch

        patch FILE.old &lt;FILE.patch

<code>eg:</code>

<code>[root@1inux ~]# diff functions functions.1 </code>

<code>4a5</code>

<code>&gt; #Author: [email protected]</code>

<code>[root@1inux ~]# diff -u functions functions.1 &gt; functions.patch </code><code>//制作更新檔</code>

<code>[root@1inux ~]# patch functions &lt;functions.patch  </code><code>//打更新檔</code>

<code>[root@1inux ~]# head -5 functions</code>

<code># -*-Shell-script-*-</code>

<code>#</code>

<code># functionsThis file contains functions to be used by most </code><code>or</code> <code>all</code>

<code>#shell scripts in the /etc/init.d directory.</code>

<code>#Author: [email protected]</code>

本文轉自 1inux 51CTO部落格,原文連結:http://blog.51cto.com/1inux/1629382

繼續閱讀