Là chuyển hướng ngược giống như một đường ống?


11

Trong Linux nếu bạn gõ

sort < txtfile

điều đó có giống như

cat txtfile | sort

Câu trả lời:


17

Đối với câu hỏi tiêu đề của bạn: Không. Lấy stdintừ nội dung tệp ( chuyển hướng đầu vào ) không giống như chuyển đầu ra của một chương trình sang đầu vào của chương trình khác.

Nhưng, vì catthực tế bạn chỉ in nội dung của một tệp, kết quả thực sự giống nhau trong ví dụ đó.


Nhưng ngay cả những điều sau đây cũng cho kết quả rất khác nhau:

$ cat * | sort
$ sort < *

Nếu có nhiều hơn một tệp phù hợp, tệp sau sẽ tạo ra

-bash: *: ambiguous redirect

vì nó không linh hoạt như trước đây, nó sẽ tạo ra tất cả các tệp phù hợp và chuyển chúng thành đầu vào sort.


3
Thế còn ... sort *? Không sử dụng con mèo vô dụng, không sử dụng vô định, gõ ngắn nhất, dễ nghĩ nhất tôi tin rằng GNU sort sẽ xử lý bạn để tối ưu hóa khả năng mở rộng cho các tệp rất lớn (không chắc chắn về điều đó - một nửa nhớ một cái gì đó ở đó)
sehe

1
@sehe Có lẽ. Tôi chỉ sử dụng ví dụ để hiển thị hai là khác nhau. Đây không phải là về cách sử dụng hiệu quả của loại. Sắp xếp là linh hoạt hơn thn mà mặc dù, chắc chắn.
Daniel Beck

@DanielBeck, Về hiệu quả, sort < txtfilehiệu quả hơn nhiều so với cat txtfile | sort?
Pacerier 13/03/2015
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.