전체 파일을보고 해당 파일에 더 많은 데이터가 추가 될 때까지 기다리는 방법은 무엇입니까? 전체 파일을 읽고 전체 tail -f

전체 파일을 읽고 전체 tail -f 파일을 표시하는 것처럼 입력 대기 상태로 만들고 싶습니다 .

파일이기 때문에이 파일의 길이는 항상 변경 .log됩니다.

파일 길이를 모르는 경우 어떻게해야합니까?



답변

tail-n끝에서 표시 할 줄 수를 지정하여 추가 할 수 있습니다. 이 줄과 함께 사용할 수 있습니다 -f. 경우의 인수 -n로 시작 +그 행 라인의 수는 시작 부분 ( 0그리고 1, 전체 파일을 표시 2@ 벤으로 나타낸 바와 같이, 첫 번째 행을 나타내는 이동). 그래서 그냥하십시오 :

tail -f -n +0 filename

로그 파일을 회전 얻을 경우, 당신은 추가 할 수 있습니다 --retry(또는 결합 -f and --retry-F@Hagen가 제안)

또한 그래픽 터미널에서는 마우스 및 PageUp/ 또는 / PageDown를 사용하여 기록을 다시 스크롤 할 수 있습니다 (버퍼가 충분히 크다고 가정) . Ctrl+ C를 사용 하여 종료 하더라도이 정보는 그대로 유지됩니다 tail. less이것을 사용 하는 것이 훨씬 덜 편리하고 AFAIK를 사용하면 스크롤을 위해 키보드를 사용해야하며 less으로 시작하는 것을 잊어 버린 경우 termcap을 초기화 해제 하는 것을 막을 방법을 모릅니다 -X.


답변

이것을 달성하는 더 좋은 방법이 있습니다.

less +F <file>

그것은 당신에게 전체 파일을 보여줄 것이고, 모든 힘을 가지고 있으며 less새로운 입력을 기다릴 것입니다. 입력 대기를 중단하고 특정 부분을 읽으려면로 ^C시작하고로 다시 시작할 수 있습니다 F.

F명령에서 항상 사용할 수 less있는 파일 열기를하면서 당신이 변화를보고 결정하는 경우, less타격, F그것을 켜집니다. 그것을 지적 해 주신 hiergiltdiestfu와일드 카드 덕분 입니다.


답변

/ u / Anthon의 답변 외에도 다음과 같은 작업을 수행 할 수 있습니다.

{ cat filename; tail -0f filename; }

-0꼬리 옵션에 해당 -n 0DISPALY 0 라인 : 의미한다. 그러나는 -f새로운 줄을 표시합니다.

괄호가 필요하지 않습니다 { }. 때로는 파일 설명자를 어떤 식 으로든 리디렉션하려고하기 때문에 사용했습니다. 예를 들어 :

{ cat ; tail -0f -; } < /var/log/messages

벤 밀우드 (Ben Milwood)는 다음과 같이 말합니다. cat작업 종료와 작업 시작 사이에 파일이 커지는 경쟁 조건이있을 수 있습니다 tail. 그러나 이것은 학술 솔루션에 대한 “학문적”문제입니다.


답변

watch 명령은 당신을 위해 그렇게해야합니다.

시도해 볼 수도 있습니다

less +FG

더 많은 옵션이 있습니다 less큰 파일이라고 말하면 파일을 스크롤 명령 있습니다.