덜 사용하여 파이프를 따라? 다음과 같이 덜 적게 명령하는 경우 command

파이프 입력 (파일과 유사)을 덜 따라갈 수 있습니까 (F를 누름)? 쓰여지는 파일의 경우 명령

less <file>

F를 누르면 파일을 따라갑니다.

그러나 파이프 출력을 다음과 같이 덜 적게 명령하는 경우

command | less

F를 누르면 아무것도하지 않습니다.

파이프처럼 파일을 따라갈 수없는 것처럼 보입니까? 아니면 STDERR에 쓰는 명령과 관련이 있습니까? 내가 달성하려는 효과는 항상 PageDown을 누른 것처럼 명령의 최신 출력을 보는 것입니다!

G (종료)에 대한 관련 설명이 있습니다. 직접 배관을 줄이면 작동하지 않습니다.



답변

누르면 F또는 G차종은 less입력 EOF에 도달하려고합니다. 입력이 파이프 인 less경우 파이프가 반대쪽에서 닫힐 때까지 멈 춥니 다 ( “아무것도하지 않음”).

명령 출력을 백그라운드의 임시 파일에 저장 한 후 다음에 대한 입력으로 사용하여이 문제를 해결할 수 있습니다 less.

command > /tmp/x &
less +F /tmp/x; kill %; rm /tmp/x

이 작업 less만 수행 할 수있는 옵션이 없습니다 . 그러나 나는 그것이 유용 할 것이라고 인정한다.


답변

파이프 입력 (파일과 유사)을 덜 따라갈 수 있습니까 (F를 누름)?

예, 버전 474부터 시작합니다. 그러나 현재이 기능과 관련하여 남아있는 문제가 하나 있으므로 아직 모든 버전의 릴리스 노트에 언급되지 않았습니다. 다음은 less의 관리자 인 Mark Nudelman의 의견입니다.

파이프의 F 명령과 관련하여 474 미만으로 고정됩니다. EOF를 찾는 대신 F 명령은 버퍼링 된 입력의 끝을 찾아서 읽기를 시작합니다. 그러나 CTRL-C를 눌러 F 명령을 중지하면 출력을 생성하는 프로세스가 종료되므로 실제로 사용할 수 없습니다. 어떻게 고칠 지 잘 모르겠습니다.

이 문제가 해결 될 때까지 쉘 기능을 사용하여 해결할 수 있습니다. 내보기 대답거기 파이프에 다른 프로세스를 중단없이 출구 방법 “덜”추적 모드? 자세한 내용은 질문하십시오.

참고로, F 파이프 작동하지의 문제는 알려진 목록에 참조 번호 (300)가 버그 와라는 제목 은 F 명령이 파이프로 연결된 입력 작업을하지 않습니다.


G (종료)에 대한 관련 설명이 있습니다. 직접 배관을 줄이면 작동하지 않습니다.

버전 466부터 작동합니다. 이 버전의 릴리스 정보 에서 인용 :

새로운 명령 ESC-G가 파이프에서 현재 버퍼링 된 데이터의 끝으로 이동


답변

적은 매뉴얼 페이지에서

[Keyboard] COMMANDS [...]

   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  behav‐
          ior is similar to the "tail -f" command.)

그래서 이것은 작동해야하며 실제로 저에게 효과적입니다.