이 특정 예제의 맥락에서 명명 된 파이프를 이해하려고합니다.
<(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. 그리고 예, 파이프에 대한 쓰기는 일부 프로세스가 파이프에서 읽을 때까지 차단됩니다.