R's Hacking Daily Log

/dev/null 본문

Daily-Note

/dev/null

hanhxx 2023. 2. 22. 22:46
find / -type f -perm -04000 -ls 2>/dev/null

이런저런 ctf 영상을 보다가 익숙하지 않은 command를 보게 되었다.

 

순간 /dev/null이 뭘까?-?

싶어서 알아본 내용을 바탕으로 정리해보고자 한다.

 

1. /dev/null이 뭔데?

/dev/null에 대해 검색해보면, null device file이라고 나온다.

그렇다면, null device file은 무엇인가?? 

 

null device란, 대체로 command가 실행되는 과정에서 원하지 않는 출력 스트림을 처리하기 위해 사용된다. 

null device에 작성되는 내용은 그게 무엇이든지 간에 모두 처분되는 것이다. 

 

말 그대로 내용이 null(~뭐가 없어~)인 파일이 null device file, 즉 /dev/null이다. 

 

2. file? directory?

/dev/null은 특별한 기능을 가진 파일이다.

디렉토리가 아니기 때문에 mv command로 어떤 파일이나 디렉토리 전체를 /dev/null로 이동시킬 수 없다고 한다.

 

 

3. /dev/null만의 특성?

/dev/null은 위에서 말했듯이 어떤 내용이 작성되든 그 내용은 버려지게 된다. 

따라서 어떤 command를 실행할 때, 출력되지 않았으면 하는 output을 /dev/null로 redirect함으로써 활용할 수 있다.

 

어떤 데이터든 /dev/null로 redirect되면 그 내용이 사라지는 것 처럼 보이기 때문에

/dev/null을 블랙홀(blackHole) or bitbucket이라고 칭하기도 한다. 

 

4. redirect?

redirect란 말 그대로 어떤 방향으로 가라고 지시하는 것인데, 

command로 입력할 때 이 ">" 부등호 모양의 키를 사용하면 된다. 

 

원래는 terminal에 어지럽게 출력될 output이었던 것을 /dev/null로 들어가라~ 하고 안내해주는 역할이라고 보면 된다.

 

 

5. /dev/null 활용하기

/dev/null에 대한 내용을 찾아보면 많이 보이는 command가 있다. 

바로, 2> 와 1>

 

 

"2>" 같은 경우에는 실행된 command에 대해 발생한 오류 출력(error output)을 redirect하라는 의미이고

"1>" 같은 경우에는 실행된 command에 대한 표준 출력(std output)을 redirect하라는 의미이다. 

 

 

사실 "1>"에서 말하는 표준 출력이라는 건,

별 다른 게 아니라 그냥 command를 실행했을 때 보는 흔한 output 그 자체를 말한다. 

echo "hello world" 1> /dev/null​

위와 같은 경우 hello world가 표준 출력이다. 

 

 

summary)

/dev/null은 항상 비어있는 파일이라 할 수 있다.

어떤 데이터든 폐기되기 때문에 불필요한 output을 걸러내기에 편리하게 사용될 수 있다.

'Daily-Note' 카테고리의 다른 글

CLI & GUI  (0) 2023.03.08
prefix & postfix  (0) 2023.03.07
file signature  (0) 2023.03.01
/tmp  (0) 2023.02.27
/etc/shadow & /etc/passwd  (0) 2023.02.24
Comments