Luôn chuyển hướng lỗi sang / dev / null


22

Tôi biết tôi có thể chuyển hướng các thông báo lỗi từ một lệnh sang /dev/nullsử dụng cú pháp sau:

command arg1 arg2 2>/dev/null

Nhưng có một cách để làm điều này theo mặc định để các thông báo lỗi luôn luôn đi đến /dev/null, trừ khi tôi chỉ định khác?


1
Tóm lại: có - redirect / dev / stderr đến / dev / null. Nhưng, nếu bạn không thể tự mình tìm ra nó, bạn không nên thử, vì bạn có nhiều khả năng phá vỡ thứ gì đó gây tử vong hơn là thành công.
Benubird

@Benubird stderr! = / Dev / stderr. Chuyển hướng tập tin đó sẽ không làm gì cả. Các tập tin trong / dev / chỉ để thuận tiện.
Chris Xuống

@ChrisDown bạn đúng, / dev / stderr chỉ là một liên kết. Tuy nhiên, rất nhiều quá trình ghi vào đó thay vì fd / 2, mà bạn cũng có thể chuyển hướng. Nó trở nên phức tạp hơn từ đó - đó là lý do tại sao tôi để lại một bình luận thay vì một câu trả lời :).
Benubird

Câu trả lời:


29

Rất nhiều chương trình gửi đầu ra đến thiết bị lỗi chuẩn không thực sự có dấu hiệu lỗi. Ví dụ, trong một số chương trình, nó được sử dụng để hiển thị thông tin có thể ảnh hưởng đến đầu ra của chương trình (được thiết kế để chuyển sang chương trình khác). Tuy nhiên, bạn có thể làm điều này:

exec 2>/dev/null

Tôi không khuyên bạn nên làm điều này bên ngoài một kịch bản.

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.