정렬할 때 Linux에서 파이프를 통해 데이터가 어떻게 흐르나요?

정렬할 때 Linux에서 파이프를 통해 데이터가 어떻게 흐르나요?

내가 다음과 같은 일을 한다고 가정해보자

cat afile [ | possibly awk or similar to process the file] | sort

데이터 흐름이 이렇다는 걸 알아요

afile -- stdout -- os buffer -- stdin -- sort 

크기 afile가 작을 경우 sort전체 내용을 가져와서 정렬하는 것이 가능할 수도 있습니다.

그러나 파일이 크면 데이터가 청크로 흘러야 합니다.
파이프라인 프로세스가 동시에 실행되므로 sort가 데이터를 수신하여 반복적으로 어딘가에 저장할 수 있다는 것을 이해합니다.

sort정렬하기 전에 모든 데이터가 수신될 때까지 기다리시겠습니까?
아마도 파일에 쓸 수 있습니다.
그런 다음 이 파일을 처리하시겠습니까?

sort이 질문은 작동하는 데 전체 데이터가 필요 하지 않은 다른 명령에 적용될 수 있다고 생각합니다 .
(리눅스 명령이 파이프를 통해 큰 데이터를 수신하고 실행되기 전에 전체 데이터를 가져와야 할 때 어떻게 실행됩니까? 그러나 이는 아마도 너무 일반적인 질문일 것입니다..)

관련 정보