tail -f 파일 변경 사항을 추적하지 않습니다 한 것입니다.

최근에 tail -f다음과 같은 일부 텍스트 파일을 모니터링 하는 데 사용 하려고했습니다 tail -f /var/sometext.

그러나 일부 테스트를 수행해도 작동하지 않는 것 같습니다. 내가 한 것은 새 파일을 만들고 실행 한 것입니다. tail -f /home/name/text그런 다음 vim에서 로그를 열고 일부 편집을 수행 한 후 저장했습니다. 꼬리가 변경 내용을 “보지”않는 것 같습니다.

이상한 점은 달리기가 echo "hello" >> /home/name/text잘 작동 하는 것 같습니다 (꼬리가 변화를 봅니다). 파일을 저장할 때 파일 설명자와 새 inode가 생성되는 것과 관련이있는 곳을 읽었습니다.

누군가 나를 위해 이것을 설명 할 수 있습니까? 이것이 실제로 어떻게 작동하는지는 알지 못했지만 파일 설명자가 무엇인지 알 수 있습니다.



답변

-finode가 뒤 따른다. 프로그램이 파일을 완전히 재생성 할 때와 같이 이름을 따르려면 -F대신 사용하십시오.


답변

tail -f는 파일의 끝을보고 파일 끝이 이동하면 새 내용을 인쇄하고 파일 끝이 다시 이동할 때까지 기다립니다. 즉, 문서 중간의 변경 사항은 tail -f로 발견되지 않고 추가됩니다.


답변

실제 이야기는 다음과 같습니다.

tail -f는 디스크가 아닌 메모리를 모니터합니다. 그러나 텍스트 편집기를 연 파일 편집과 같은 보호 된 메모리에는 액세스 할 수 없습니다.