ТОЛЬКО знайти / шукати кореневий розділ Linux?


17

Скажіть, що мені потрібно зробити:

find / -name somefile.txt

і скажімо, кореневий розділ /встановлений на /dev/sda5; однак скажімо, у мене також встановлені 250 ГБ розділів ( /dev/sda6, /dev/sda7), встановлених у /media- І іншому місці, якого я зараз не можу згадати. Скажіть також, що я знаю, що шукається файл, який я шукаю /dev/sda5.

Очевидно, що вищевказана команда також зійде /mediaі в інший каталог, який представляє великі розділи, витрачаючи час на пошук файлу в неправильному місці.

Чи є спосіб доручити find (або іншу команду) шукати тільки / на /dev/sda5, а НЕ спускатися до каталогів, якщо вони знаходяться на різних розділах?

Відповіді:


30

Використовуйте -xdevаргумент для пошуку

-xdev Не спускайте каталоги в інші файлові системи.


1
Велике спасибі - лише для довідки, синтаксис буде: <pre> find / -xdev -name somefile.txt </pre>
sdaau

1
Для користувачів Mac: знайдіть -x / -name somefile.txt
CodeReaper

1
Пошук анонімної сторінки --one-file-systemтакож duне приніс мені користі. Принаймні, вони обидва починають з того, -xя думаю. І це означає "перехресні пристрої", я думаю.
Шрідхар Сарнобат

2

Стандарт POSIX визначає-xdev «первинний«:

він повинен викликати пошук не продовжувати спадання минулих каталогів, які мають інший ідентифікатор пристрою

Це реалізовано в GNU find(тобто findutils ; docs ).
GNU findтакож дозволяє використовувати -mountяк альтернативну назву -xdevдля сумісності з деякими іншими версіями пошуку. "

Для систем BSD та macOS -xзамість цього є варіант . Вони (настільки заплутано) закликають -xdevбути " застарілими ". Однак ви можете використовувати -mountзамість цього. [сторінки FreeBSD та macOS ]

інші інструменти, просто FYI

Якщо ви використовуєте, як ripgrep ( rg) rg --files, ви можете скористатись --one-file-systemопцією, яка робить те саме, що і параметр find 's -xdev.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.