왜 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 -f
overlayfs의 파일에서 파일을 사용하려고 시도한 inotify
다음 파일이 변경 될 때 알림을받지 않습니다.
이에 대한 우분투 버그 보고서는 버그 # 882147입니다. overlayfs가 inotify 인터페이스를 올바르게 구현하지 않습니다 . Jim Meyering의 Andrea Ranieri를 통한 버그 보고서에서 인용 된 해결 방법은
tail -f ---disable-inotify file
(실제로 하이픈이 세 개 있습니다.)