Làm cách nào để ngăn thông báo từ chối quyền hiển thị khi tôi thực hiện lệnh find?


7

Tôi đang cố chạy lệnh find, aka:

find / -name "some_file" -print 

và kết quả của tôi có đầy đủ các tin nhắn bị từ chối cấp phép:

find: /.DocumentRevisions-V100: Permission denied

Làm cách nào để ngăn chúng hiển thị trong kết quả tìm kiếm của tôi?

Câu trả lời:


18

Ba cách đến với tâm trí:

  • chạy lệnh với tư cách quản trị viên: sudo find / -name "whatever" -print
  • loại bỏ tất cả đầu ra lỗi: find / -name "whatever" -print 2>/dev/null
  • lọc thông báo "Quyền bị từ chối": find / -name "whatever" -print 2>&1 | fgrep -v "Permission denied"

Sự khác biệt chính giữa tùy chọn thứ hai và thứ ba có lẽ là thứ hai loại bỏ tất cả các thông báo lỗi trong khi tùy chọn thứ ba sẽ không hiển thị bất kỳ tệp / thư mục nào có tên "Quyền bị từ chối" (điều này rất khó xảy ra).

Ngoài ra, cũng có thể đáng lưu ý rằng bạn không nên sử dụng tùy chọn thứ ba nếu bạn có kế hoạch xử lý tiếp theo đầu ra findthông qua một đường ống. Lý do ở đây là đầu ra tiêu chuẩn và lỗi được gửi qua hai kênh khác nhau (và chỉ được kết hợp trực quan sau đó bởi vỏ). Nếu bạn chuyển đầu ra sang một lệnh khác, chỉ nội dung của đầu ra tiêu chuẩn sẽ được nhập vào lệnh tiếp theo.


Câu trả lời tuyệt vời! Tôi sẽ chỉ cho 2>/dev/nullbản thân mình, +1 vì quá kỹ lưỡng!
Josh

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.