Làm thế nào để loại trừ các thư mục NFS với find?


9

Tôi cần tìm kiếm các tệp không có người dùng HOẶC không có nhóm.

find / -nouser -o -nogroup

Tôi nghĩ rằng điều này là OK. Nhưng, tôi không muốn tìm kiếm cổ phiếu NFS. Làm cách nào để loại trừ cổ phiếu NFS trong lệnh find?


2
Hãy thử find / -fstype ext4 -nouser -o -nogroupthay thế ext3, v.v. nếu bạn không sử dụng ext4
doneal24

1
xin vui lòng gửi bài này dưới dạng câu trả lời
gasko peter 6/213

@ DougO'Neal bạn nên đăng nó như một câu trả lời.
Tim Kennedy

1
@ DougO'Neal, điều đó sẽ không dừng lại findkhi đi xuống nfs FS, chỉ cần không in các tệp mà nó sẽ tìm thấy ở đó.
Stéphane Chazelas

Để sử dụng -exec với thứ gì đó như dukết hợp -fstype-xdev(aka -mount) dường như là cần thiết
Gert van den Berg

Câu trả lời:


7

Với GNU find, bạn có thể sử dụng -fstypevị ngữ:

find / -fstype nfs -prune -o \( -nouser -o -nogroup \) -print

Phải nói rằng, cách tiếp cận của hymie có lẽ có ý nghĩa hơn: liệt kê danh sách trắng những gì bạn muốn tìm kiếm thay vì liệt kê đen những danh sách mà bạn không muốn tìm kiếm.

Nếu bạn muốn chỉ bao gồm jfs2các hệ thống tệp (giả sử /là bật jfs2), thì, bạn cần phải viết nó:

find / ! -fstype jfs2 -prune -o \( -nouser -o -nogroup \) -print

Đừng viết nó:

find / -fstype jfs2 \( -nouser -o -nogroup \) -print

Vì trong khi điều đó sẽ dừng findviệc in các tệp trong hệ thống tệp không phải jfs2, thì điều đó sẽ không ngăn nó thu thập dữ liệu các hệ thống tệp không phải jfs2 đó (mà bạn cần -prune).

Lưu ý rằng -a( AND được ẩn nếu bỏ qua) có quyền ưu tiên hơn -o( OR ), vì vậy bạn cần xem liệu dấu ngoặc đơn có cần thiết hay không.

Lệnh đúng ở trên là viết tắt của:

find / \( \( ! -fstype jfs2 \) -a -prune \) -o \
  \( \( -nouser -o -nogroup \) -a -print \)

10

Cách gần nhất mà bạn có thể nhận được là sử dụng -xdev, có nghĩa là "Đừng xuống thư mục trên các hệ thống tập tin khác." Sau đó, bạn sẽ cần phải xác định các hệ thống tập tin bạn làm muốn tìm kiếm.

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.