재지향시 유의사항 (grep 재지향)

by 조쉬 posted Mar 26, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

리눅스에서 아래와 같은 명령어를 쳤을경우,

 
# ll > temp.txt

아무것도 일어나지 않지만, ll명령어로 해당 디렉토리를 살펴보면, temp.txt 파일이 생성되고, 그속에 ll 명령어로 쳤을때 나오는 결과가 들어 있는 것을 확인 할 수 있다.

재지향이라는 것이다. 자세한 사항은 알아서 검색 해보기로 하고,
grep 명령어가 재지향 명령어와 만나게 될 경우.. 위험한 일이 발생하게 된다.
예를 들어 아래와 같은 명령어를 실행 시켰을 경우

 
# grep '찾을문자열' ./ -r > temp.txt

뭔가 실행중이긴 한데.. 너무 오래 걸린다...? 그래서 급히 ctrl + z 를 눌러서 멈춘후에, ll 을 쳐서 무슨일인가 확인해보면

 
-rw-r--r-- 1 root root 475779072 9월 19 14:07 temp.txt

응? 용량이 475779072??? 400매가가 넘는 파일이 생성되어 있다?
여기서 vim temp.txt 를 해보면, 안에는 자신이 grep으로 찾은 내용이 들어 있고, 또 그 찾은 내용내용이 담긴 파일(즉 자신)을 검색해서 또 집어넣고...(무한 반복)

이렇게 찾을 내용을 temp.txt에 집어넣고 그 파일을 또 검색해서 temp.txt에 집어넣고 하다 보니, 순식간에 파일 용량이 늘어나 버리는 것이다.

grep을 쓰는 디렉토리와, 그 결과를 생성해놓는 디렉토리가 같아서 발생하게 되는 이 재밌는 현상.. 주의 하기 바란다.