tail -f는 무엇을 의미합니까?하다?

tail -f는 무엇을 의미합니까?하다?

실수로 터미널에서 다음 명령을 실행했습니다.

tail -f /logs/applications/logs*

다음과 같은 결과가 나타납니다.

tail: file shrunk!
Error 0

정확히 무슨 일이 일어났는지 잘 모르겠습니다. 디렉토리의 파일 수를 추적한 지 꽤 오래되었습니다. 누군가 정확히 무슨 일이 일어나고 있는지, 파일이 누락되었는지 설명해 주시겠습니까?

편집하다:

우연인지는 모르겠지만, 코드를 실행하고 나서 디렉토리에 있는 파일 개수를 세어보니 10개였습니다!

처음으로 10이라는 숫자를 봤을 때 정말 편집증적인 느낌이 들었습니다...

답변1

정확히 무슨 일이 일어났는지 잘 모르겠습니다.

파일이 외부 응용 프로그램에 의해 회전되는 경우가 발생합니다. 이것은 일반적입니다. 다음과 같은 유틸리티logrotate 회전하다로그 파일, 즉 기존 로그 파일의 내용을 다른 파일로 이동하고 기존 로그 파일을 삭제합니다.펀치 아웃응용 프로그램이 다시 쓰기를 시작하기 전에.

tail추적 파일의 크기가 줄어든 것으로 확인 되면 관찰한 메시지를 인쇄하고 파일 추적을 계속합니다.

에서 인용tail invocation부분GNU coreutils 매뉴얼:

어떤 방법을 사용하든 추적된 파일이 축소된 것으로 판단되면 tail파일이 잘렸다는 메시지가 인쇄되고 새로 결정된 엔드포인트에서 파일 끝까지 추적이 계속됩니다.

답변2

tail아니요, 명령은 파일의 끝만 표시하므로 파일이 손실되지 않았습니다 .

전달하는 /logs/applications/logs*것은 tail여러 파일/폴더(패턴과 일치하는 모든 것)를 전달하는 것과 같습니다 /logs/applications/logs*. 이 패턴은 디렉터리와도 일치할 수 있으므로 이러한 경우에는 tail작동하지 않습니다 .

관련 정보