Мне нужно написать скрипт, который находит все файлы, которые соответствуют шаблону именования, но когда я нахожу совпадение, я не хочу углубляться в какие-либо подкаталоги.Я понятия не имею, когда запускается скрипт, где могут быть найдены совпадения глубины.
Пример может помочь.Если я использую find
, как это, чтобы найти мои каталоги Subversion:
find . -name .svn
Это приводит к чему-то вроде:
./java/.svn
./java/com/.svn
./java/com/squeakysand/.svn
./java/com/squeakysand/taglib/.svn
./java/com/squeakysand/taglib/dev/.svn
./java/com/squeakysand/taglib/logging/.svn
./java/com/squeakysand/taglib/text/.svn
./java/com/squeakysand/taglib/util/.svn
./resources/.svn
Но результат, который я действительно хочу этот конкретный пример, это простоПервый результат и последний результат.Другими словами, как только он находит каталог .svn
внутри каталога java
, я не хочу искать дальше в каталоге java
(как каталог com
в этом примере).Но я хочу получить результат в каталоге resources
, поскольку он не находится в каталоге java
.Но, как и в случае с каталогом java
, теперь, когда я нашел каталог .svn
в каталоге resources
, я хочу прекратить дальнейший поиск в каталоге resources
.
По сути, я хочувыполните поиск в глубину поиска соответствия, и когда я его найду, не углубляйтесь в этот путь.
Есть ли способ использовать find
для этого или есть другая команда?или, может быть, комбинация команд?