Bu belirli örnek bağlamında adlandırılmış yöneltmeler anlamaya çalışıyorum.
Yazarken <(ls -l)
, benim terminalde gibi çıktı almak bash: /dev/fd/63: Permission denied
.
Eğer cat <(ls -l)
yazarsam, dizin içeriğini görebilirdim. Ben değiştirirseniz cat
ile echo
, ben terminali adını almak düşünüyorum (ya öyle?).
echo <(ls -l)
çıktıyı olarak verir /dev/fd/63
.
Ayrıca, bu örnek çıktı bana açık değil.
ls -l <(echo "Whatever")
lr-x------ 1 root root 64 Sep 17 13:18 /dev/fd/63 -> pipe:[48078752]
Ancak, eğer verirseniz, ls -l <()
bana dizin içeriğini listeler.
Adlandırılmış boru durumunda ne oluyor?
mkfifo
yalnızca adlandırılmış yöneltmeyi, hiçbir içerik olmadan oluşturur. Bu yüzden kendinize yazmanız gerekir (örneğinmkfifo mypipe; ls > mypipe
). Ve evet, boruya yazılanlar bir işlem borudan okunana kadar engellenir.