Vim으로 텍스트 파일을 편집해도 tail -f가 업데이트되지 않습니다


17

tail -f a.txt라는 파일의 업데이트를 보는 데 사용 하고 a.txt있습니다.

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

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

필자가 반드시 해당 창에서 업데이트를 트리거 할 것으로 기대하지는 않지만 tail -f명령을 실행하는 터미널이 왜 정확하게 업데이트되지 않습니까?


5
tail -f추가를 확인합니다. tail -F파일 이름 변경을 확인합니다.
thrig

답변:


31

로 파일을 편집하면 vim일반적으로 파일을 메모리로 읽은 다음 새 파일을 씁니다. 그래서 tail지금까지 파일 시스템에 남아있는 파일 (의 최신 사본의 부족에서 작동 tail(그리고 다른 프로그램은) 그것을 사용 중지합니다.

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

tail -F yourfile  

대문자를 적어 둡니다F .


1
tail -F공장! 콘솔에 이제 "a.txt가 교체되었습니다 : 다음 새 파일 끝"과 같은 메시지가 표시되고 그에 따라 업데이트됩니다. 감사!
alex

8

내 이해는 일반적으로로 편집 할 때 vim파일 사본을 편집하는 중이며 변경 사항은 디스크에 변경 사항을 쓸 때 이동합니다. 이에 의해 발생하기 때문에 unlink원본을 보내고과 move장소에 새를 보내고, tail원본 파일에 새로운 변경 사항이 표시되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.