Apakah pengalihan mundur sama dengan pipa?


Jawaban:


16

Untuk pertanyaan judul Anda: Tidak. Mendapatkan stdindari isi file ( pengalihan input ) tidak sama dengan memipis satu output program ke input program lain.

Tapi, karena Anda catbenar - benar hanya mencetak konten file, hasilnya secara efektif sama dalam contoh itu.


Tetapi bahkan berikut ini saja memberikan hasil yang sangat berbeda:

$ cat * | sort
$ sort < *

Jika ada lebih dari satu file yang cocok, yang terakhir akan menghasilkan

-bash: *: ambiguous redirect

karena itu tidak sefleksibel yang sebelumnya, yang akan menampung semua file yang cocok, dan menyalurkannya sebagai input sort.


3
Bagaimana dengan ... sort *? Tidak ada penggunaan kucing yang tidak berguna, tidak ada penggunaan tipuan yang tidak berguna, terpendek untuk mengetik, dan paling mudah untuk dipikirkan, dan saya percaya GNU sort akan memperlakukan Anda dengan optimasi skalabilitas untuk file yang sangat besar (tidak begitu yakin tentang itu - setengah mengingat sesuatu di sana)
sehe

@sehe Mungkin. Saya hanya menggunakan contoh untuk menunjukkan keduanya berbeda. Ini bukan tentang penggunaan jenis efisien. Sortir lebih fleksibel daripada itu, tentu saja.
Daniel Beck

@DanielBeck, Mengenai efisiensi, sort < txtfilejauh lebih efisien daripada cat txtfile | sort?
Pacerier
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.