OS X의 tail/less --follow-name과 동일

OS X의 tail/less --follow-name과 동일

나는해야한다꼬리 -f회전되는 로그 파일.

이것이정확한여기와 동일한 문제가 있지만 OS X에서는 다음과 같습니다.

Less Tail 모드가 작동을 멈추는 이유는 무엇입니까?

그렇다면 OS X에서 inode가 변경될 수 있는 파일을 지속적으로 추적하려면 어떻게 해야 할까요?

답변1

Ubuntu Lucid에서(coreutils 7.4)

   -f, --follow[={name|descriptor}]
          output appended data as the file grows; -f, --follow, and --follow=descriptor are equivalent

   With --follow (-f), tail defaults to following the file descriptor, which means that even if a tail'ed file is renamed, tail will continue to track its end.  This default behavior is not desirable when  you  really  want  to
   track  the  actual  name  of  the  file, not the file descriptor (e.g., log rotation).  Use --follow=name in that case.  That causes tail to track the named file by reopening it periodically to see if it has been removed and
   recreated by some other program

Mac OS X 10.6(10A432)부터

 -f      The -f option causes tail to not stop when end of file is
         reached, but rather to wait for additional data to be appended to
         the input.  The -f option is ignored if the standard input is a
         pipe, but not if it is a FIFO.

 -F      The -F option implies the -f option, but tail will also check to
         see if the file being followed has been renamed or rotated.  The
         file is closed and reopened when tail detects that the filename
         being read from has a new inode number.  The -F option is ignored
         if reading from standard input rather than a file.

--follow=를 원한다고 가정/tmp/something.txtLinux에서의 동작은 Mac에서 원하는 것이 다음과 같다는 것을 의미합니다.

tail -F /tmp/somefile.txt

편집하다: 방금 Mac OSX(Snow Leopard)에서 테스트했으며-에프입력한 파일 이름만 열며, 이동 시 열었던 파일의 inode/파일 설명자를 따르지 않습니다.

관련 정보