Tất cả các hệ điều hành POSIX có 3 luồng : stdin, stdout và stderr. stdin là đầu vào, có thể chấp nhận thiết bị xuất chuẩn hoặc thiết bị xuất chuẩn. stdout là sản phẩm chính, mà được chuyển hướng với >
, >>
hoặc |
. stderr là đầu ra lỗi, được xử lý riêng để mọi trường hợp ngoại lệ không được chuyển đến một lệnh hoặc được ghi vào một tệp mà nó có thể bị hỏng; thông thường, điều này được gửi đến một bản ghi của một số loại, hoặc đổ trực tiếp, ngay cả khi thiết bị xuất chuẩn được chuyển hướng. Để chuyển hướng cả hai đến cùng một nơi, sử dụng:
command &> /some/file
EDIT : cảm ơn Zack vì đã chỉ ra rằng giải pháp trên không khả dụng - thay vào đó hãy sử dụng:
*command* > file 2>&1
Nếu bạn muốn tắt tiếng, hãy làm:
*command* 2> /dev/null