sudo mv myfile.txt /dev/null하면 파일이 블랙홀에 들어가 삭제되는 것이 아닌 (심지어 /dev/null 파일을 cat해서 보면 내용을 그대로 볼 수 있다) 저렇게 하면 /dev/null 파일이 myfile.txt로 대체되어버린다. 더 이상 특수한 파일인 /dev/null을 사용할 수 없을 뿐더러 이 특수한 파일을 사용하는 곳에 오류를 발생시킬 수 있다.
📌 command > /dev/null 2>&1 첫 번째echooo 'Hello null' > /dev/null은 당연히 잘못된 명령어를 /dev/null로 보내서 버리려고 했으나 이 문장은 stdout만 버리기 때문에 오류 메시지는 여전히 표시된다.종합하면echooo 'Hello null > /dev/null은 stdout을 블랙홀로 보내버리는 것이고, 여기에 더해2>&1은 에러도(stderr) stdout으로 redirect 하는 것이므로 결국> /dev/null 2>&1은 stdout, stderr 모두 버리겠다는 의미이다.
두 번째echooo 'Hello null' > /dev/null 2>&1에서 일단 2>&1 의 의미는 2(stderr)를 1(stdout)으로 redirect 시키는 것으로 1앞에 &가 붙은 이유는 그냥 1을 쓰면 파일이름이 1인 것으로 인식하지만 &1을 하면 File Descriptor의 1번, 즉 stdout을 가리키는 뜻이다.
댓글