이 특정 예제의 맥락에서 명명 된 파이프를 이해하려고합니다.
<(ls -l)
터미널에 입력 하고로 출력을 얻습니다 bash: /dev/fd/63: Permission denied
.
을 입력 cat <(ls -l)
하면 디렉토리 내용을 볼 수 있습니다. 나는 교체하는 경우 cat
와를 echo
, 내가 터미널 이름을 얻을 생각 (또는인가?).
echo <(ls -l)
출력을로 제공합니다 /dev/fd/63
.
또한이 예제 출력은 명확하지 않습니다.
ls -l <(echo "Whatever")
lr-x------ 1 root root 64 Sep 17 13:18 /dev/fd/63 -> pipe:[48078752]
그러나 내가 주면 ls -l <()
디렉토리 내용이 나와 있습니다.
명명 된 파이프의 경우 어떻게됩니까?
mkfifo
내용없이 명명 된 파이프 만 만듭니다. 따라서 직접 작성해야합니다 (예 :)mkfifo mypipe; ls > mypipe
. 그리고 예, 파이프에 대한 쓰기는 일부 프로세스가 파이프에서 읽을 때까지 차단됩니다.