Skip to main content

Device File

Linux File Hierarchy를 보면 다음과 같이 Device File을 저장하고 있는 /dev 디렉토리의 파일들을 확인할 수 있다.

/dev/null

/dev 디렉터리 내의 null 이라는 파일이며, Windows\Device\Null, DOSCP/MNUL: 또는 NUL과 동일하다.

/dev/null에 쓰여진 모든 데이터는 버려지고 복구가 불가능하다.

이는 fake 파일(디렉터리가 아님)이며, $ stat /dev/null을 통해 파일 사이즈가 0인 것을 알 수 있다.

해당 파일은 $ who -b를 통해 출력되는 시스템의 boot-up 시간과 동일하다는 특징이 있다.

/dev/null은 실행할 수 있는 파일이 아니기 때문에, 실행권한은 필요 없다.

또한, pipe를 통해 실행을 할 수 없기 때문에, /dev/null로 데이터를 전달하려면 > 연산자를 사용해야 한다.

/dev/null에 대한 소스코드는 https://github.com/torvalds/linux/blob/master/drivers/char/mem.c에 있다.


/dev/zero

0으로 된 파일을 생성하기 위한 파일이다. 이렇게 하는 이유는 오래된 파일의 데이터를 0으로 덮어쓰거나, 스왑을 위한 임시 파일을 생성하기 위함이다.

다음과 같이 디스크 파티션을 포맷하거나, 더미 파일을 생성할 때 사용될 수 있다.

# dd if=/dev/zero of=<NAME_OF_FILE> bs=<SIZE_OF_BLOCK> count=<SETS_OF_BLOCK_SIZE>

# example
# 128 * 32 / 1024 === 4 GB
$ dd if=/dev/zero of=/swapfile bs=128M count=32
Related Links