텍스트 파일을 열고 자체 업데이트


20

텍스트 파일을 열어서 스스로 업데이트하도록하려면 어떻게해야합니까? top작동 방식과 유사 합니다.

로그 파일을 열고 즉시 업데이트되는 것을보고 싶습니다.

방금 시도했습니다.

$ tail error.log

그러나 로그 파일의 행만 표시한다는 것을 깨달았습니다.

RHEL 5.10을 사용하고 있습니다


4
사용tail -f error.log
garethTheRed

아, tail그것을 사용하는 올바른 방법입니까? 와우, 나는 그것을 사용할 수 있다고 생각하지 않았습니다. 나는 훨씬 더 긴 표현을 기대하고 있었다.
Kevdog777

1
꼬리 동안 참고로, 작업을위한 도구, 문자 open a text file and let it update itself로 achived 할 수 있습니다 watch cat filename.
Cthulhu

1
@Cthulhu 당신은 의미 watch cat filename또는 유사합니다. watch filename실행을 시도합니다 filename.
terdon

@terdon 그렇습니다.
Cthulhu

답변:


29

찾고있는 tail -f error.log(의 man tail) :

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

그러면 파일을보고 변경된 사항을 볼 수 있습니다.


그리고 이것은 많은 리소스를 사용하지 않습니까?
Kevdog777

1
@ Kevdog777 정말 아니에요. 아마도 몇 초마다 파일을 다시 열어 업데이트합니다. 이것은 당신이 원하는 것을하는 고전적인 방법입니다.
terdon

1
@terdon,은 (으)로만 다시 열립니다 (다시 열 수 있음) -F. 으로 -f그것은 단지 초마다 읽습니다. 그것은 같다 while cat; do sleep 1; done < file. 반응성이 높은 테일 inotail에 대해서는 Linux를 참조하십시오 ( 파일 수정시기를 아는 데 사용 ). inotify
Stéphane Chazelas

@ StéphaneChazelas : 그것보다 훨씬 더 효율적입니다. 선택 또는 폴링을 사용하여 fd를 읽을 수 있는지 확인한 다음 fd에 사용할 수있는 데이터가있을 때까지 잠자십시오. 나는 완전히 틀릴 수 있지만.
Martin York

1
@LokiAstari, 당신은 read시스템 호출 보다 훨씬 더 효율적으로 얻을 수 없습니다 . "읽기" select또는 poll일반 파일의 경우 항상 일반 파일을 read()차단하지 않으므로 항상 true를 반환 하므로 작동하지 않습니다. 그러나 GNU는 tail이제 inotifyLinux에서 사용하므로 inotail더 이상 필요하지 않습니다.
Stéphane Chazelas

20

스크롤 백 및 검색에 "꼬리"대신 "less"를 사용하십시오.

tail -f error.log또는 더 잘 사용할 수 있습니다 tail -F error.log..

그러나 파일에서 뒤로 스크롤하려면 유용하지 않습니다.

less +F error.log

당신의 기능을 얻을 tail -f,
수 있지만 중단 과 새로운 입력의 읽기 Ctrl+를 C.

그런 다음, 당신은 정상에있는 less모드로,
당신은 할 수 다시 스크롤 당신이 놓친 것을보고 Up/ Down
또한, 사용, 포장없이 긴 로그 파일 라인을 읽을 수 있습니다 Left/Right

검색하고 일치하는 줄만 표시

또한 정규식을 검색 할 수 있습니다 /, ?이전 버전에 대한, n그리고 N다음에 / 이전.

로그 파일에 대한 매우 흥미로운 당신이 할 수 있다는 것입니다 숨길 수 있는 검색 일치하지 않는 모든 라인을 &, 필터링 에만 일치를.

명령 행의 키

F내부 less, 당신은 계속tail -f -like 모드. 명령 줄에서 수단 "직접 적은 시작한 후 Enter 키를 눌러이 키".
+less +F

따라서 F시작시 키 누르기 를 사용 했습니다.

F  Scroll  forward,  and  keep trying to read when the end of file is
   reached.  Normally this command would be used when already at  the
   end  of the file.  It is a way to monitor the tail of a file which
   is growing while it is being viewed.  (The behavior is similar  to
   the "tail -f" command.)

multitail둘 이상의 로그 파일을보아야하는 경우 도 참조하십시오 .


고마워,하지만 tail -f error.log내가 필요한 것에 완벽합니다. 로그 파일은 매 시간마다 업데이트되므로 사용하기에 충분합니다. :-)
Kevdog777

1
다음 번에 꼭 기억하십시오;)
Volker Siegel

most또한 tail -f모드가 F있습니다.
Stéphane Chazelas

@ StéphaneChazelas 감사합니다! 흠 ... 누군가 most전에 언급 해 주셔서 감사 하다는 것을 기억합니다 ... 잊어 버렸습니다.
Volker Siegel

@ StéphaneChazelas 그러나 그렇다면 일치하는 줄만 표시하는 most필터 기능이 더 적은 것 같 &습니까? 일반적으로 로그 파일에 유용한 기능입니다.
Volker Siegel

5

다음 -f과 함께 옵션 사용 tail:

-f, --follow [= {name | descriptor}] 파일이 증가함에 따라 추가 된 데이터를 출력합니다. -f, --follow 및 --follow = descriptor는 동일합니다

또는 F내부에서 명령을 사용하십시오 less.

   F      Scroll forward, and keep trying to read when the end of file is reached.  Normally this command would be used when already at the end of the file.  It is a way to mon‐
          itor the tail of a file which is growing while it is being viewed.  (The behavior is similar to the "tail -f" command.)

이 답변의 새로운 점은 무엇입니까?
bluefoggy

1
나는 당신이 무엇을 요구하는지 이해하지 못합니다. 이 질문에 대한 두 번째 대답이자 첫 번째 질문이었습니다 less.
Arkadiusz Drabczyk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.