Có lẽ
command 2> command.err | less; cat command.err; rm command.err
Phụ lục
Dưới đây là một cách làm rõ cho những người bỏ bê việc đọc kỹ câu hỏi và những người không đọc bình luận làm rõ của OP ở trên.
haelix chỉ ra:
dòng stderr thường được liệt kê giữa các dòng stdout bên trong ít hơn
và, trong một bình luận cho những người trả lời sớm, đã viết:
Bạn đang nói với tôi làm thế nào để chuyển hướng stderr sang thiết bị xuất chuẩn nhưng đó không phải là điều tôi muốn. Tôi không muốn stderr trộn với thiết bị xuất chuẩn bên trong ít hơn. Tôi muốn stderr ở trong terminal khi tôi thoát ít hơn
Vấn đề có lẽ là nền tảng cụ thể, nó chắc chắn là điều tôi đã trải nghiệm trên các nền tảng Unix SVR4 cũ hơn.
Nếu, trên các nền tảng như vậy, bạn làm một cái gì đó như
find / ... | less
bất kỳ thông báo lỗi nào (ví dụ như quyền thư mục) xuất hiện như thế này trong ít hơn
stdout line 1
stdout line 2
error message text
stdout line 4
để các dòng đầu ra bị che khuất bởi các thông báo lỗi.
Nếu bạn làm mới trang, các dòng đầu ra được hiển thị chính xác nhưng bạn sẽ mất các thông báo lỗi. Khi bạn thoát ít hơn, màn hình sẽ bị xóa trừ dấu nhắc lệnh.
Nếu bạn làm một cái gì đó như
find / ... 2>&1 | less
Các thông báo lỗi được xen kẽ với đầu ra tiêu chuẩn. Một lần nữa khi bạn thoát ít hơn, màn hình trống rỗng.
Nếu trước tiên bạn chỉ muốn kiểm tra lại đầu ra tiêu chuẩn, sau đó xem các thông báo lỗi sau khi thoát ít hơn, bạn cần một giải pháp khác.
Đó là những gì tôi đã đề nghị trong câu trả lời hai dòng gốc của mình.