표시되지 않는 데이터를 버퍼로 읽으려면 less를 어떻게 구성합니까?

표시되지 않는 데이터를 버퍼로 읽으려면 less를 어떻게 구성합니까?

나는 최근에 장기 실행 소스 코드 검색을 시작하고 즉시 백그라운드로 전송할 수 있다는 사실을 발견했습니다.

grep -r something | less &

less검색 결과를 보기로 결정할 때 기다릴 필요가 없도록 현재 "백그라운드"에 표시된 것보다 더 많은 출력을 메모리로 직접 읽을 수 있는 방법이 있습니까?

답변1

기본적으로 명령이 파이프되면 bash쉘은 다음을 사용합니다.파이프(3)하위 작업의 파일 설명자를 짜기 위해 libc에 의해 호출됩니다. 기본 내부 버퍼 크기는 64K에 불과합니다.

그러나 도구가 있습니다

buffer

이 작업을 위해 대부분의 배포판에 포함되어 있습니다. 기본적으로 1MB 버퍼를 사용하지만 원하는 크기로 늘릴 수 있습니다. 예를 들어

grep ..anything, anywhere.. | buffer -m $[1<<30] | less &

그거면 충분할 것 같아요. :-) 다른 좋은 기능도 많이 있습니다(예: 처럼 작동하거나 ddn 바이트 청크 후에 해시를 stderr에 인쇄합니다).킬러 앱. :-)

관련 정보