lệnh find / grep mà không cần tìm kiếm chia sẻ gắn kết


34

Khi tôi sử dụng lệnh find, tôi hầu như luôn cần tìm kiếm các ổ đĩa cục bộ. Nhưng, tôi hầu như luôn có các cổ phiếu mạng siêu lớn được gắn kết và chúng được bao gồm trong tìm kiếm. Có cách nào dễ dàng để loại trừ những người trong lệnh find, grep và các lệnh tương tự khác không? Thí dụ:

tìm / tên .vimrc

Câu trả lời:


46

Sử dụng -fstype localtùy chọn để tìm:

find / -fstype local -name .vimrc

Nếu bạn muốn loại trừ chỉ các đường dẫn cụ thể, bạn có thể sử dụng -prune:

find / -name /path/to/ignore -prune -o -name .vimrc

Cập nhật:

Loại localpsuedo-fstype có sẵn trong phiên bản find đi kèm với OS X, nhưng không có trong GNU find ( fstypes được GNU find nhận ra ).

Nếu bạn đang sử dụng GNU find (như được sử dụng trên hầu hết các hệ thống linux), thay vào đó bạn sẽ muốn sử dụng -mount:

find / -mount -name .vimrc

điều đó cũng làm việc cho grep?
Flotsam N. Jetsam

1
Tôi không nghĩ grep có một lựa chọn như vậy. Tôi thường sử dụng findđường ống grepnhư trong câu trả lời này: superuser.com/questions/80033/ ,. Gần đây, tôi đã sử dụng ack( betterthangrep.com ), nhưng ackdường như không có tùy chọn chỉ tìm kiếm ổ đĩa cục bộ.
Doug Harris

Chỉnh sửa của tôi đã bị từ chối vì điều này, vì vậy chỉ cần làm cho nó một nhận xét. Về cơ bản ví dụ đầu tiên là sai, bởi vì bạn cần thêm -prunevào nó hoặc nó vẫn sẽ đi qua các hệ thống tệp không mong muốn. Ví dụ thứ hai tôi tin là có nghĩa là -paththay vì -namevậy nó sẽ bỏ qua đường dẫn. FWIW ... ví dụ cuối cùng hoạt động, nó nằm trên "hệ thống tập tin hiện tại" nên không đi qua các hệ thống khác.
rogerdpack


0

Câu hỏi ban đầu là chỉ tìm thấy trên đĩa cục bộ, vì vậy để hoàn thiện, đây là những gì tôi đã sử dụng;

for PART in `awk '(!/^#/ && $6 != "0" || $3 == "xfs" ) { print $2 }' /etc/fstab 2>/dev/null`; do find $PART -xdev -name .vimrc -print 2>/dev/null; done

Miễn là fstab của bạn được thiết lập đúng, nó chỉ nên tìm kiếm các đĩa cục bộ; tức là, các giá trị cifs nên đặt cờ cuối cùng thành 0. Tôi đã bao gồm hệ thống tập tin OR cho xfs khi chúng tôi bắt đầu chuyển sang RHEL7, chúng cũng nên được đặt thành 0 vì chúng không có nghĩa là thực hiện reorg đĩa sau quá nhiều lần khởi động lại.

Mong rằng sẽ giúp.

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.