[unix] dd : ‘/ dev / null’쓰기 : 장치에 남은 공간이 없습니다.

550MB 파일을 / dev / null로 읽고 있는데

dd: writing '/dev/null': No space left on device

놀랐습니다. / dev / null은 원하는만큼 보낼 수있는 블랙홀이라고 생각했습니다 (가상 fs 때문에).

예,이 오류가 발생하면 디스크가 거의 가득 찼습니다. 디스크에서 내용을 삭제하는 것 외에 무엇을 할 수 있습니까?

 ls -l /dev/null
 -rw-r--r--    1 root     root             0 July 7 21:58 /dev/null

대신에

 crw-rw-rw-    1 root     root        1,   3 July 7 02:58 /dev/null

내가 사용하는 명령 :

time sh -c "dd if=$filename of=/dev/null"



답변

/dev/null문자 장치 유형의 특수 파일입니다. 해당 문자 장치의 드라이버는 장치에 쓰려고하는 모든 것을 무시하고 쓰기는 항상 성공합니다. 쓰기에 /dev/null실패하면 제대로 제거하고 /dev/null일반 파일로 대체 했음을 의미 합니다. 실수로 제거했을 수 있습니다 /dev/null. 다음은 … >/dev/null일반 파일로 다시 만들었을 것입니다.

실행 ls -l /dev/null하고 선이 다음과 같은지 확인하십시오

crw-rw-rw- 1 root root 1, 3 Sep 13  2011 /dev/null

그것은로 시작해야합니다 crw-rw-rw-: c문자 장치를 위해, 모두가 읽기 및 쓰기 할 수 있도록 권한을 설정합니다. 중요하지는 않지만 파일은 루트가 소유해야합니다. 소유자와 그룹 다음에 나오는 두 숫자는 장치를 식별합니다 ( 주 및 부 장치 번호 ). 위의 리눅스에서 가치를 보여줍니다; 다른 유닉스 변종은 다른 값을 가지고 있습니다. 날짜는 일반적으로 시스템이 설치된 날짜이거나 마지막 재부팅 날짜이며 중요하지 않습니다.

파일을 다시 작성해야하는 경우 일부 시스템 MAKEDEV은 루트의 PATH 또는에 쉼표를 제공합니다 /dev. cd /dev; ./MAKEDEV std이와 같은 표준 기본 장치를 다시 만들려면 다음과 같이 실행하십시오 /dev/null. 또는 올바른 장치 번호를 제공하여 장치를 수동으로 작성하십시오. 리눅스에서는

mknod -m 666 /dev/null c 1 3


답변