Nó không vô dụng - đó là một hình thức chuyên biệt của >toán tử chuyển hướng đơn giản (và, có lẽ khó hiểu, không liên quan gì đến đường ống). bashvà hầu hết các shell hiện đại khác đều có tùy chọn noclobber, ngăn chuyển hướng ghi đè hoặc phá hủy một tệp đã tồn tại. Ví dụ: nếu noclobberlà đúng và tệp /tmp/output.txtđã tồn tại, thì điều này sẽ thất bại:
$ some-command > /tmp/output.txt
Tuy nhiên, bạn có thể ghi đè rõ ràng cài đặt noclobbervới >|toán tử chuyển hướng - chuyển hướng sẽ hoạt động, ngay cả khi noclobberđược đặt.
Bạn có thể tìm hiểu nếu noclobberđược đặt trong môi trường hiện tại của bạn với set -o.
Đối với ghi chú lịch sử, cả tùy chọn "noclobber" và tính năng bỏ qua của nó đều xuất phát từ csh(cuối thập niên 70). kshsao chép nó (đầu những năm 80) nhưng được sử dụng >|thay vì >!. POSIX đã chỉ định kshcú pháp (vì vậy tất cả các vỏ POSIX bao gồm bash, các dẫn xuất tro mới hơn được sử dụng như sh trên một số hệ thống hỗ trợ nó). Zsh hỗ trợ cả hai cú pháp. Tôi không nghĩ rằng nó đã được thêm vào bất kỳ biến thể vỏ Bourne nào nhưng tôi có thể sai.
               
              
>|tại: stackoverflow.com/questions/818255/in-the-bash-shell-what-is-21/