Bash - 파일로 리디렉션(버그)하시겠습니까? [복사]

Bash - 파일로 리디렉션(버그)하시겠습니까? [복사]

이 예를 보면 혼란스럽습니다.

[ziga@brane ~]$ touch test.txt
[ziga@brane ~]$ echo "TEST" > test.txt
[ziga@brane ~]$ cat test.txt
TEST
[ziga@brane ~]$ cat test.txt | grep "TEST"
TEST
[ziga@brane ~]$ cat test.txt | grep "TEST" > test.txt
[ziga@brane ~]$ cat test.txt
[ziga@brane ~]$

cat test.txt | grep "TEST" > test.txt파일 내용을 삭제 해야 하는 이유는 무엇입니까 test.txt? >다시 작성하고 추가하는 것 같아요 >>! 내가 무엇을 놓치고 있나요?

답변1

리디렉션이 먼저 발생하기 때문에 >test.txt파일을 먼저 자르고 다음에는 cat test.txt아무것도 읽히지 않고 전달되지 않으므로 | grep "TEST"일치하는 항목이 없으며 마지막으로 열린 파일에 아무것도 기록되지 않습니다.test.txt

관련 정보