[Linux] linux下/dev/zero和/dev/null的意義和使用

轉載自http://blog.csdn.net/macrohasdefined/article/details/10344539 ,有刪減。

1. /dev/zero

正如我們所知道的,這是0的“發源地”。在HP-UX 10.30以後,就可以使用該文件了。對於HP 11.00和更早的操作系統,這個文件不是默認就有的,需要手工創建:
#mknod /dev/zero c 3 4 /dev/zero
大部分時候,/dev/zero作如下作用:
a. 清空文件
#cp /dev/zero bigfile
b. 作dd的時候用
#time dd if=/dev/zero of=6g bs=1024k count=$((6*1024))

通過使用/dev/zero,我們能得到如下的好處:
a. 目標文件全都是0,那麼在發生crash之類的時候,我們就很容易來檢查文件是否發生了變化。例如如果沒有任何錯誤,那麼"#xd 6g"這個命令就會簡單得返回三行。
b. 因爲/dev/zero是一個內核設備文件,那麼從/dev/zero讀取,不會產生任何的物理I/O,這在做performance troubleshooting的時候就非常重要了。

2. /dev/null
/dev/null是UNIX系統中很神奇的一個功能,他是任何數據的墳墓,任何寫入其中的數據都將被忽略掉。這在做I/O測試的時候非常重要。
我們常常要用到如下的測試:
a. #fbackup -f - -i /usr | cat - >/dev/null
測試fbackup的讀取是否正常。
b. #(tar cf /dev/null /usr &);sar -d 1 5
測試tar的performance
c. #(time dd if=bigfile of=/dev/null bs=1024k&);sar -d 1 10
測試讀的performance,而沒有牽涉到任何的物理寫的動作。
/dev/null也給程序開發帶來很多好處,一些不需要的信息,都被丟棄到/dev/null。因此,如果/dev/null文件被刪除了,或者是/dev/null文件的權限改變了,那麼一些工具將不能正常的工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章