![출력을 파일로 다시 리디렉션 [중복]](https://linux55.com/image/203953/%EC%B6%9C%EB%A0%A5%EC%9D%84%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EB%8B%A4%EC%8B%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%20%5B%EC%A4%91%EB%B3%B5%5D.png)
콘텐츠를 가져와서 foo.txt
처리한 후 원본 파일에 다시 쓸 것이라고 생각하여 다음 명령을 실행했습니다. 대신 파일을 열면 비어 있습니다.
cat foo.txt | tr " " "\n" > foo.txt
이 줄에서 정확히 무슨 일이 일어나고 있으며 출력을 다시 리디렉션하도록 다시 작성할 수 있습니까 foo.txt
?
답변1
Redirect( >foo.txt
)는 명령이 실행되기 전에 상위 쉘에 의해 수행되어 cat
파일을 0바이트로 재설정합니다. 다음과 같은 것을 사용하십시오
tr " " "\n" foo.txt >foo.new && \
mv foo.new foo.txt
또한 쓸모없는 사용을 피하십시오 cat
.