tail 명령이 파일의 변경 사항을 실시간으로 추적하지 않는 이유는 무엇입니까? [복사]

tail 명령이 파일의 변경 사항을 실시간으로 추적하지 않는 이유는 무엇입니까? [복사]

설명자를 사용하여 파일을 실시간 추적하면 tail --follow=descriptor file_name파일에 적용된 변경 사항이 표시되지 않지만, 이름을 사용하여 파일을 실시간 추적하면 tail --follow=name file_name파일에 적용된 변경 사항이 표시됩니다. 또한 tail 을 사용하여 파일을 추적하는 동안 파일에 쓸 때마다 --follow=nametail 출력에 파일이 삭제된 다음 다시 나타나는 것으로 표시됩니다. 이것이 출력입니다 tail: file_name: No such file or directory tail: 'file_name' has appeared; following new file. 무슨 일이 일어나고 있는 걸까요? 파일이 처음부터 다시 작성됩니까? 파일이 기록될 때마다 파일 설명자가 변경됩니까?

답변1

파일에 어떻게 쓰나요?

파일에 쓸 때 파일을 이동하거나 삭제하고 같은 이름의 새 파일을 만든 다음 해당 파일에 쓰는 경우가 발생합니다. 그래서 당신이 사용할 때

  1. --follow=name: tail은 file_name에만 관심을 가지므로 쓰기 전에 파일을 이동/삭제할 때를 알려주고, tail: file_name: No such file or directory동일한 이름의 파일을 생성하면 이를 알려주고 tail: 'file_name' has appeared; following new file파일에 쓸 수 있습니다. 화면에 뭐라고 쓰여 있는지 보세요.

  2. --follow=descriptor: tail은 파일을 이동/삭제한 후에도 파일 설명자를 따르며 파일 설명자는 이전 파일을 가리키며 를 입력하여 입력할 수 있습니다 /proc/{tail process id}/fd.

관련 정보