3.25. Á¦·Î¿Í ³Î(Of Zeros and Nulls)

/dev/nullÀÇ »ç¿ë

/dev/nullÀ» "ºí·¢È¦"À̶ó°í »ý°¢Çϼ¼¿ä. Àбâ Àü¿ë ÆÄÀϰú °ÅÀÇ ºñ½ÁÇÕ´Ï´Ù. ¿©±â¿¡ ¾²´Â ¸ðµç °ÍÀº ¿µ¿øÈ÷ ¾ø¾îÁý´Ï´Ù. ¿©±â¿¡¼­ ¹«¾ð°¡¸¦ ÀÐÀ¸·Á°í ÇÑ´ÙµçÁö ¾î¶² °á°ú¸¦ ¹Ù¶ó´Â °ÍÀº ¹«ÀǹÌÇÑ ÁþÀÔ´Ï´Ù. ±×·³¿¡µµ ºÒ±¸Çϰí, /dev/nullÀº ¸í·É¾î ÁÙÀ̳ª ½ºÅ©¸³Æ®¿¡¼­ ¾ÆÁÖ À¯¿ëÇÏ°Ô ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù.

Ç¥ÁØ Ãâ·Â(stdout)À̳ª Ç¥ÁØ ¿¡·¯(stderr) Ãâ·ÂÀ» ¸·±â(예 3-97¿¡¼­ Àοë):
rm $badname 2>/dev/null
#           ¿¡·¯ ¸Þ¼¼Áö[stderr]´Â Ãâ·Â µÇÁö ¾Ê½À´Ï´Ù.

ÆÄÀÏ ÀÚü¿Í ¸ðµç ÆÛ¹Ì¼ÇÀº ±×´ë·Î °®°í ³»¿ë¸¸ Áö¿ì±â(예 2-1¿Í 예 2-2¿¡¼­ Àοë):
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/wtmp

ÀÚµ¿À¸·Î ·Î±× ÆÄÀÏÀÇ ³»¿ëÀ» ºñ¿ì±â(»ó¿ë À¥ »çÀÌÆ®¿¡¼­ º¸³»´Â ±ÍÂúÀº "ÄíŰ"¸¦ ó¸®ÇÒ ¶§ Ưº°È÷ ÁÁ½À´Ï´Ù).
rm -f ~/.netscape/cookies
ln -s /dev/null ~/.netscape/cookies
# ÀÌÁ¦ ¸ðµç ÄíŰ´Â µð½ºÅ©¿¡ ÀúÀåµÇÁö ¾Ê°í ºí·¢È¦·Î º¸³»Áý´Ï´Ù.

/dev/zeroÀÇ »ç¿ë

/dev/nulló·³ /dev/zeroµµ °¡»ó(pseudo) ÆÄÀÏÀÌÁö¸¸ ½ÇÁ¦·Î´Â ³ÎÀ» °®°í ÀÖ½À´Ï´Ù(¾Æ½ºÅ° °°Àº°Ô ¾Æ´Ñ ÁøÂ¥ ¼ýÀÚ 0). ¿©±â·Î ¹«¾ð°¡¸¦ ¾²¸é ¾ø¾îÁöÁö¸¸ ½ÇÁ¦·Î ³Î°ªÀ» Àо´Â °ÍÀº ¾ÆÁÖ ¾î·Æ½À´Ï´Ù. ÇÏÁö¸¸ od³ª Çí»ç ¿¡µðÅ͵îÀ¸·Î ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. /dev/zero´Â ´õ¹Ì ÆÄÀÏÀ» ƯÁ¤ÇÑ ±æÀÌÀÇ ÃʱâÈ­µÈ Àӽà ½º¿Ò ÆÄÀÏ·Î ¸¸µå´Âµ¥ ÁÖ·Î ¾²ÀÔ´Ï´Ù.

예 3-96. /dev/zero·Î ½º¿Ò ÆÄÀÏÀ» ¼¼ÆÃÇϱâ

#!/bin/bash

# ½º¿ÒÆÄÀÏ ¸¸µé±â
# ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù.

FILE=/swap
BLOCKSIZE=1024
PARAM_ERROR=33
SUCCESS=0


if [ -z $1 ]
then
  echo "»ç¿ë¹ý: `basename $0` swapfile-size"
  # ÃÖ¼ÒÇÑ 40 ºí·°Àº µÇ¾î¾ß ÇÕ´Ï´Ù.
  exit $PARAM_ERROR
fi
    
dd if=/dev/zero of=$FILE bs=$BLOCKSIZE count=$1

echo "Å©±â°¡ $1 ºí·°(KB)ÀÎ ½º¿ÒÆÄÀÏÀ» ¸¸µì´Ï´Ù."

mkswap $FILE $1
swapon $FILE

echo "½º¿ÒÆÄÀÏÀÌ È°¼ºÈ­µÆ½À´Ï´Ù."

exit $SUCCESS