대시에서 zsh multios 시뮬레이션(다중 리디렉션)

대시에서 zsh multios 시뮬레이션(다중 리디렉션)

에서 zsh해당 옵션을 활성화하면 출력을 두 가지 다른 프로세스로 파이프할 수 있습니다.multios

cat /dev/sda > sda.img | sha256sum > sda.img.sha256

dashie에서 동일한 목표를 어떻게 달성할 수 있습니까 /bin/sh?

답변1

tee복사 스트림을 사용하여 결과를 파일화하고 파이프하여 sha256sum표준 입력에서 읽고 별도의 파일에 쓸 수 있습니다 . 그러나 표준 입력 표시기에서 읽는 것은 -선택 사항입니다.

</dev/sda tee sda.img | sha256sum - > sda.img.sha256

dash물론 이것은 최소한의 쉘에서 작동해야 합니다.

zsh데이터가 더 적은 수의 파이프를 통과하기 때문에 이는 실제로 multios를 사용하는 것보다 더 효율적입니다. 여기서 다중 OS 접근 방식을 사용하면 한 번 읽고 teesha256sum번 쓰고, zsh의 내부 티잉 프로세스(파이프를 통해)에서 한 번 읽고 쓰고, 내부 티잉 프로세스에서 한 번 쓰고 두 번 읽습니다. .teecatsha256sumcat

ksh다음과 같이 프로세스 대체()가 지원되는 경우bash>(..)zsh

< /dev/sda tee >(sha256sum > sda.img.sha256) > sda.img

관련 정보