ống so với chuyển hướng


14

Tôi đã sử dụng đường ống và chuyển hướng trong một thời gian dài và nhận ra rằng tôi không biết chính xác chúng khác nhau như thế nào. Tôi chỉ biết rằng nếu bạn muốn lưu trữ đầu ra trong một tệp, thì bạn sử dụng & gt;. Nếu không, hầu hết thời gian bạn chỉ cần sử dụng |. Ai đó có thể giải thích sự khác biệt giữa đường ống và chuyển hướng?


Câu trả lời:


14

Cả hai đều làm những điều cơ bản giống nhau; họ chuyển hướng một mô tả tập tin của quá trình thực hiện. Sự khác biệt nằm ở chỗ. Một đường ống kết nối thiết bị xuất chuẩn của một quá trình với stdin của quy trình khác, trong khi chuyển hướng chuyển hướng từ / đến một tệp ( > từ thiết bị xuất chuẩn đến một tập tin, < từ một tập tin đến stdin).


Loại phân biệt mờ trong Linux và các hệ thống khác có /dev/fd. Ví dụ: nếu bạn chạy echo foo > >(somecommand), nó sẽ mở rộng đến echo foo > /dev/fd/3. Nó vẫn chuyển hướng, nhưng đến một quá trình.
grawity
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.