команда find / grep без пошуку змонтованих акцій


34

Коли я використовував команду find, мені майже завжди потрібно шукати локальні диски. Але у мене майже завжди встановлені надзвичайно великі мережеві акції, і вони включаються до пошуку. Чи є простий спосіб виключити ті, які знаходяться в команді find, grep та інших подібних командах? Приклад:

знайти / -ім’я .vimrc

Відповіді:


46

Скористайтеся -fstype localопцією, щоб знайти:

find / -fstype local -name .vimrc

Якщо ви хочете виключити лише певні шляхи, ви можете використовувати -prune:

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

Оновлення:

localПсевдо-FSType доступна у версії знахідки , яка поставляється з OS X, але не в GNU знахідку ( fstypes визнаних GNU знахідки ).

Якщо ви використовуєте пошук GNU (як це використовується в більшості систем Linux), замість цього ви хочете використовувати -mount:

find / -mount -name .vimrc

це теж працює на греп?
Flotsam N. Jetsam

1
Я не думаю, що греп має такий варіант. Я зазвичай використовую findтрубу , grepяк показано в цій відповіді: superuser.com/questions/80033 / ... . Останнім часом я використовую натомість ack( betterthangrep.com ), але ack, схоже, немає можливості шукати лише локальні диски.
Дуг Харріс

Мою редакцію на це відхилили, тому просто зробивши коментар. В основному перший приклад неправильний, тому що вам потрібно додати -pruneйого, інакше він все одно перетинатиме небажані файлові системи. Другий приклад, на який я вважаю, мав бути -pathзамість того, -nameщоб він ігнорував шлях. FWIW ... останній приклад справді працює, він залишається на "поточній файловій системі", тому не обходить інших.
rogerdpack


0

Оригінальне запитання полягало в тому, щоб знайти лише на локальному диску, тому для повноти, ось що я використав;

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

Поки ваш fstab налаштований належним чином, він повинен шукати лише локальні диски; наприклад, кріплення cifs повинні мати цей остаточний прапор встановлений 0. Я включив АБО для файлових систем xfs, коли ми почали переходити до RHEL7, вони також повинні бути встановлені на 0, оскільки вони не повинні робити реорганізацію диска після стількох перезавантажень.

Сподіваюся, що це допомагає.

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