pipa vs. arahan ulang

23

Saya telah menggunakan pipa dan pengalihan untuk waktu yang lama dan baru menyadari bahwa saya tidak tahu persis bagaimana perbedaannya. Saya hanya tahu bahwa jika Anda ingin menyimpan output dalam file, maka Anda menggunakan>. Kalau tidak, sebagian besar waktu Anda hanya menggunakan |. Adakah yang bisa menjelaskan perbedaan antara pipa dan arahan ulang?

tony_sid
sumber

Jawaban:

25

Keduanya melakukan hal dasar yang sama; mereka mengarahkan deskriptor file dari proses yang dieksekusi. Perbedaannya terletak pada bagaimana. Sebuah pipa menghubungkan stdout dari satu proses ke stdin yang lain, sedangkan pengalihan diarahkan dari / ke file ( >dari stdout ke file, <dari file ke stdin).

Ignacio Vazquez-Abrams
sumber
1
Perbedaannya agak kabur di Linux dan sistem lain yang ada /dev/fd. Misalnya, jika Anda menjalankan echo foo > >(somecommand), itu akan berkembang menjadi echo foo > /dev/fd/3. Ini masih pengalihan, tetapi untuk suatu proses.
user1686