Linux chỉ tìm / tìm kiếm phân vùng gốc?


17

Nói rằng tôi cần phải làm:

tìm / -name somefile.txt

và nói phân vùng gốc /được gắn kết trên /dev/sda5; tuy nhiên, giả sử tôi cũng có các phân vùng 250GB ( /dev/sda6, /dev/sda7) được gắn vào /media- VÀ một vị trí khác mà hiện tại tôi không thể nhớ. Ngoài ra, tôi cũng biết rằng tập tin tôi đang tìm kiếm đang bật /dev/sda5.

Rõ ràng, lệnh trên cũng sẽ đi xuống /mediavà thư mục khác đại diện cho các phân vùng lớn, lãng phí thời gian trong việc tìm kiếm tệp ở sai vị trí.

Có cách nào để hướng dẫn find (hoặc lệnh khác) chỉ tìm kiếm /trên /dev/sda5và KHÔNG xuống thư mục nếu chúng nằm trên các phân vùng khác nhau không?

Câu trả lời:


30

Sử dụng -xdevđối số để tìm

-xdev Đừng xuống thư mục trên các hệ thống tập tin khác.


1
Cảm ơn nhiều - chỉ để tham khảo, cú pháp sẽ là: <pre> find / -xdev -name somefile.txt </ pre>
sdaau

1
Đối với người dùng mac: find -x / -name somefile.txt
CodeReaper

1
Tìm kiếm manpage cho --one-file-systema la duđã làm cho tôi không tốt, hoặc. Ít nhất là cả hai đều bắt đầu với -xtôi. Và nó có nghĩa là "thiết bị chéo" tôi nghĩ.
Sridhar Sarnobat

2

Các tiêu chuẩn POSIX định nghĩa các -xdev“tiểu học“:

điều đó sẽ khiến việc tìm kiếm không tiếp tục giảm dần các thư mục trong quá khứ có ID thiết bị khác

Điều này được triển khai trong GNU's find(tức là findutils ; docs ).
GNU findcũng cho phép bạn sử dụng -mountnhư một tên thay thế cho -xdev, để tương thích với một số phiên bản tìm kiếm khác. Cúc

Trên các hệ thống BSD và macOS, tùy chọn -xthay thế. Họ (imho một cách khó hiểu) gọi -xdevbị từ chối . Bạn có thể, tuy nhiên, sử dụng -mountthay thế. [trang của FreeBSDmacOS ]

các công cụ khác, chỉ là FYI

Nếu bạn đang sử dụng ripgrep ( rg) như thế nào rg --files, bạn có thể sử dụng --one-file-systemtùy chọn này, giống như tùy chọn của find-xdev .

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.