![정렬할 때 Linux에서 파이프를 통해 데이터가 어떻게 흐르나요?](https://linux55.com/image/221991/%EC%A0%95%EB%A0%AC%ED%95%A0%20%EB%95%8C%20Linux%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%B4%ED%94%84%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B0%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%9D%90%EB%A5%B4%EB%82%98%EC%9A%94%3F.png)
내가 다음과 같은 일을 한다고 가정해보자
cat afile [ | possibly awk or similar to process the file] | sort
데이터 흐름이 이렇다는 걸 알아요
afile -- stdout -- os buffer -- stdin -- sort
크기 afile
가 작을 경우 sort
전체 내용을 가져와서 정렬하는 것이 가능할 수도 있습니다.
그러나 파일이 크면 데이터가 청크로 흘러야 합니다.
파이프라인 프로세스가 동시에 실행되므로 sort가 데이터를 수신하여 반복적으로 어딘가에 저장할 수 있다는 것을 이해합니다.
sort
정렬하기 전에 모든 데이터가 수신될 때까지 기다리시겠습니까?
아마도 파일에 쓸 수 있습니다.
그런 다음 이 파일을 처리하시겠습니까?
sort
이 질문은 작동하는 데 전체 데이터가 필요 하지 않은 다른 명령에 적용될 수 있다고 생각합니다 .
(리눅스 명령이 파이프를 통해 큰 데이터를 수신하고 실행되기 전에 전체 데이터를 가져와야 할 때 어떻게 실행됩니까? 그러나 이는 아마도 너무 일반적인 질문일 것입니다..)