Linux znaleźć / przeszukać TYLKO partycję główną?

17

Powiedz, że muszę zrobić:

znajdź / -name somefile.txt

i powiedzmy, że partycja root /jest zamontowana /dev/sda5; powiedzmy jednak, że mam również zamontowane partycje o pojemności 250 GB ( /dev/sda6, /dev/sda7) /media- ORAZ inną lokalizację, której obecnie nie pamiętam. Powiedz też, że wiem, że plik, którego szukam, jest włączony /dev/sda5.

Oczywiście powyższe polecenie również zejdzie do /mediainnego katalogu reprezentującego duże partycje, marnując czas na szukanie pliku w niewłaściwym miejscu.

Czy istnieje sposób, aby poinstruować find (lub inne polecenie), aby wyszukiwał tylko / na /dev/sda5, a NIE schodził do katalogów, jeśli znajdują się na różnych partycjach?

sdaau
źródło

Odpowiedzi:

30

Użyj -xdevargumentu, aby znaleźć

-xdev Nie schodź do katalogów w innych systemach plików.

nos
źródło
1
Wielkie dzięki - tylko dla odniesienia, składnia wyglądałaby następująco: <pre> find / -xdev -name somefile.txt </pre>
sdaau
1
Dla użytkowników komputerów Mac: znajdź -x / -name somefile.txt
CodeReaper
1
Przeszukiwanie strony podręcznika pod kątem --one-file-systemla duteż mi nie pomogło. Przynajmniej obaj zaczynają od, jak -xsądzę. I myślę, że oznacza to „wiele urządzeń”.
Sridhar Sarnobat
2

POSIX'owych norma określa-xdev „pierwotna„

spowoduje to, że find nie będzie kontynuował schodzenia do poprzednich katalogów, które mają inny identyfikator urządzenia

Jest to zaimplementowane w GNU find(tj. Findutils ; docs ).
GNU findpozwala także używać -mountjako „ alternatywnej nazwy dla -xdev, dla kompatybilności z niektórymi innymi wersjami find.

W systemach BSD i macOS opcja jest -xzamiast tego. (Imho myląco) wzywają -xdevdo „ przestarzałych ”. Możesz jednak użyć -mountzamiast tego. [strony FreeBSD i macOS ]

inne narzędzia, po prostu FYI

Jeśli używasz ripgrep ( rg) jak rg --filesmożna korzystać z --one-file-systemopcji, która robi to samo jak find „s -xdevopcji.

myrdd
źródło