![파일을 삭제하지 않고 특정 명령 <file.txt> file.txt를 사용하는 방법 [중복]](https://linux55.com/image/134769/%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%ED%8A%B9%EC%A0%95%20%EB%AA%85%EB%A0%B9%20%26lt%3Bfile.txt%26gt%3B%20file.txt%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EC%A4%91%EB%B3%B5%5D.png)
나는 이전에 파일을 그 자리에서 변경할 것으로 예상하면서 이 작업을 수행한 적이 $ tr '\t' ',' <file.txt >file.txt
있으며 분명히 리디렉션은 >
파일을 읽기 전에 파일을 자릅니다.<
파일을 자르거나 삭제하지 않고 어떻게 파일을 변경할 수 있나요?
답변1
당신은 할 수 없습니다. 리디렉션 >
연산자~ 할 것이다파이프라인의 일부로 새로운 빈 파일을 만듭니다. 이 작업을 수행하는 도구(예: sed --in-place
)는 새 파일을 생성하고 파일에 쓴 다음 새 파일을 이전 파일 위치로 이동하는 것 같습니다 .
$ ls -i file; sed --in-place 's/foo/bar/' file; ls -i file
266110 file
262180 file