cp /dev/zero ~ 와 cp /dev/null 의 차이점이 무었인지요

jw0717의 이미지

/var/spool/mail/root 확인하고 평소때

cp /dev/null /var/spool/mail/root 로 지웁니다.

테스트해볼겸 틀린점이 궁금해서

cp /dev/zero /var/spool/mail/root 했더니

시스템이 행이 걸리는거 같습니다. interupt error나오고

접속해있던 네트워크 다 끊깁니다.

/dev/nul 과 /dev/zero 로 cp 하는게 어떤점이 차이점일까요?

jedi의 이미지

cat /dev/null > ..... 이런 식으로 해야 지워지는 것 아닌가요?

그리고 /dev/zero 의 크기가 무한대가 되죠.

cp /dev/zero /var/spool/mail/root 는

결국 하드디스크를 채운다는 결과가......

+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년

무한포옹의 이미지

jw0717 wrote:
/var/spool/mail/root 확인하고 평소때

cp /dev/null /var/spool/mail/root 로 지웁니다.

테스트해볼겸 틀린점이 궁금해서

cp /dev/zero /var/spool/mail/root 했더니

시스템이 행이 걸리는거 같습니다. interupt error나오고

접속해있던 네트워크 다 끊깁니다.

/dev/nul 과 /dev/zero 로 cp 하는게 어떤점이 차이점일까요?

흔히들 /dev/zero 는 화이트홀, /dev/null 은 블랙홀이라고 하지요.. (아닌가?)

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

ganadist의 이미지

/dev/zero는 계속 0 값을 내놓습니다.
/dev/null은 아무것도 내놓지 않습니다.

cat /dev/zero > blah 라고 명령을 내리면 사용자가 그만둘 때(^c를 누른다던가) 까지 파일에 0을 쉴새 없이 채웁니다.

cat /dev/null > blah 라고 명령을 내리면 아무짓도 하지 않습니다. (만약에 blah라는 파일이 있고 내용이 채워져 있으면 내용이 비워져 버립니다. 이것은 zero의 경우도 마찬가지입니다만 zero는 비우고나서 0을 계속 채워버립니다.)

거꾸로
cat blah > /dev/zero 와 cat blah > /dev/null 은 같은 역할을 합니다.

커널소스에는 drivers/char/mem.c 에 구현이 되어 있습니다.

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러