[unix] `tail -f`를 사용하여 파일의 진행 상황을 볼 수 없습니다

tail -f이전에는 작동하지 않는지 놀랍습니다 .

백업을 위해 아래 명령을 실행했습니다.

ubuntu@ubuntu:~$ sudo tar -cvf /media/ubuntu/My*Linux/ub*data/zebra.tar /media/ubuntu/home > z1 2> z2 && echo "pass" || echo "fail"

출력과 오류를 확인하려면이 두 파일 z1과이 z2있습니다.

이제 파일 z1의 터미널에서 명령의 출력을보고 싶습니다.

ubuntu@ubuntu:~$ tail -f z1

그러나이 명령은 시간이 지남에 따라 추가되는 데이터를 보여주지 않습니다.

USB 펜 드라이브를 사용하여 Ubuntu 14.04.1의 라이브 설치를 진행 중입니다. 이것이 이유가 될 수 있습니까?



답변

이것을 재현 할 수 있습니다. 버그입니다.

Ubuntu 라이브 CD에서 기본 사용자의 홈 디렉토리를 포함하는 파일 시스템은 overlayfs 유형 이며 inotify 를 지원한다고 주장 하지만 그렇지 않습니다.

따라서 tail -foverlayfs의 파일에서 파일을 사용하려고 시도한 inotify다음 파일이 변경 될 때 알림을받지 않습니다.

이에 대한 우분투 버그 보고서는 버그 # 882147입니다. overlayfs가 inotify 인터페이스를 올바르게 구현하지 않습니다 . Jim Meyering의 Andrea Ranieri를 통한 버그 보고서에서 인용 된 해결 방법은

tail -f ---disable-inotify file

(실제로 하이픈이 세 개 있습니다.)


답변