Vim을 사용하여 텍스트 파일을 편집하면 tail -f가 업데이트되지 않습니다.

Vim을 사용하여 텍스트 파일을 편집하면 tail -f가 업데이트되지 않습니다.

나는 tail -f a.txt이라는 이름의 파일에 대한 업데이트를 보는 데 사용합니다 a.txt.

두 번째 가상 콘솔과 같은 것을 사용하여 파일을 업데이트하면 ls -a >> a.txt변경 사항이 첫 번째 가상 콘솔에 실시간으로 표시됩니다.

두 번째 가상 콘솔에서 Vim을 사용하여 파일을 업데이트하면 변경 사항이 첫 번째 가상 콘솔에 표시되지 않습니다.

해당 창에서 업데이트를 트리거할 필요는 없지만 명령이 실행되는 터미널을 업데이트하지 않는 이유는 무엇입니까 tail -f?

답변1

편집 파일을 사용하는 경우 vim일반적으로 파일을 메모리로 읽은 다음 새 파일을 씁니다. 따라서 tail이제 파일의 오래된 복사본 tail(및 다른 프로그램)이 사용을 중지할 때까지 파일 시스템에 남아 있는 파일 복사본을 사용하여 작업하고 있습니다.

tail다음을 사용하여 파일 대신 파일 이름을 따를 수 있습니다 .

tail -F yourfile  

참고하세요수도 F.

답변2

내가 이해하는 바는 일반적으로 를 사용하여 편집할 때 vim파일의 복사본을 편집하는 것이며 변경 사항을 디스크에 쓸 때 제자리로 이동된다는 것입니다. 이는 unlink원본 파일을 복사하고 move새 파일을 제자리에 놓으면 발생하므로 tail원본 파일에 대한 새로운 변경 사항은 표시되지 않습니다.

관련 정보