Diyelim ki iki argüman alan bir program var; girdi dosyası ve çıktı dosyası.
Ya bu çıktı dosyasını diske kaydetmek istemiyorsam, doğrudan stdin
başka bir programa aktarmak istersem . bunu arşivlemenin bir yolu var mı?
Linux'ta karşılaştığım birçok komut, çıktı dosyası argümanı olarak '-' iletme seçeneği sunuyor, bu da yukarıda belirttiğim şeyi yapıyor. Bunun nedeni stdin
bir programın argüman olarak aktarılması mümkün değil mi? Öyleyse, nasıl yapıyoruz?
Bunu kullanarak görüntü nasıl bir örnek:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
Kullandığım kabuk bash.
cat < README.txt | cp /dev/fd/0
. O dedicp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program
? Ayrıca echo
, stdin'den hiçbir şey okumadığını unutmayın .
cp
hiçbir yerde bir dosya yapamazsınız . echo 1 2 3| cp /dev/fd/0 /dev/tty
yazdıracaktır 1 2 3
. Bu arada, çoğu durumda /dev/fd/[num]
çalışma olasılığı daha yüksektir /dev/std(in|out|err)
. Nerede çalışacağını bekleyebileceğiniz hakkında Dosya Tanımlayıcı Bağlantılarının Taşınabilirliği konusuna bakın .
cat <file | cmd /dev/fd/0
çoğu unice üzerinde çalışır.