+--------------------+ +------+ +----------+
| stdout |·······→| less |——————→| |
| somecommand | +------+ | terminal |
| stderr |——————————————————————→| |
+--------------------+ +----------+
Nếu somecommand
in văn bản để sai số chuẩn chỉ, sau đó khi bạn chạy somecommand | less
, somecommand
và less
đều hiển thị để các thiết bị đầu cuối. Đầu ra của lệnh trên stderr của nó sẽ không xảy ra less
, nó sẽ trực tiếp đến thiết bị đầu cuối, vì nó không được chuyển hướng. Đầu tiên, đầu ra của somecommand
cuộn bằng cách khởi tạo ít hơn và hiển thị dòng nhắc của nó; sau đó khi somecommand
kết thúc ít thông báo rằng đầu vào của nó đã hoàn thành (vì đường ống được đóng lại). Bạn có thể muốn thử nghiệm một chút: chạy
{ sleep 1; somecommand; sleep 1; } | { sleep 0; less; }
và các biến thể về thời gian ngủ để somecommand
tạo ra sản lượng trước hoặc sau ít hơn đã sẵn sàng và để xem điều gì xảy ra khi đường ống được đóng lại.