find: как исключить директорию из поиска? |
![]() |
Добавил(а) microsin |
Например, надо рекурсивно в домашнем каталоге найти все файлы nano.specs, не просматривая при этом папку ~/tmp и её подкаталоги. С помощью find это можно проделать следующей командой: $ find ~ -path ~/tmp -prune -o -name "nano.specs" -print Назначение используемых здесь опций: ~ Искать в домашнем каталоге (путь ~), рекурсивно, т. е. просматривая все подкаталоги домашней директории. [Исключение нескольких директорий из поиска] Вот так можно указать несколько каталогов исключения для find (здесь с помощью оператора -o исключаются из поиска каталоги ~/tmp, ~/install и ~/Bouffalo): find ~ -type d \( -path ~/tmp -o -path ~/install -o -path ~/Bouffalo \) -prune -o -name 'nano.specs' -print Другой пример, который делает то же самое: find ~ -not \( -path ~/tmp -prune \) -not \( -path ~/install -prune \) -not \( -path ~/Bouffalo -prune \) -name nano.specs [Ссылки] 1. How do I exclude a directory when using `find`? site:stackoverflow.com. |