나는 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
원본 파일에 대한 새로운 변경 사항은 표시되지 않습니다.