У меня, наверное, один глупый вопрос:
Я работаю на удаленном сервере под Solaris, используя ssh и моя задача состоит в том, чтобы найти определенные файлы в каталогах, соответствующих шаблону оболочки, но не идти рекурсивно глубже.
Предположим, у меня есть следующая иерархия каталогов:
dir-a/
file-a
file-b
dir-c/
file-a
dir-b/
file-a
file-b
и я хочу найти все файлы с именем file-a в каталогах dir-a & dir-b но не в каталоге dir-c . Хорошо, пока все хорошо - это действительно просто с помощью одной команды find :
find dir-{a,b} -mindepth 1 -maxdepth 1 -name 'file-a'
но проблема в том, что на этой машине установлена действительно старая версия find поэтому она не имеет опций -mindepth и -maxdepth . Я пытался использовать -prune:
find dir-{a,b} \( -type d -prune \) -o -name file-a -print
но он вообще ничего не печатает, потому что самые первые каталоги в дереве поиска - это сами каталоги dir-a и dir-b поэтому find просто пропустите их содержимое, как это и должно быть. Если бы я мог использовать -mindepth я бы просто пропустил эти "корневые" каталоги с -mindepth 1 и получил бы другое рабочее решение, но, как я уже сказал, не могу. depth не помогла также, потому что dir-a и dir-b являются последними в дереве поиска find, если оно использовалось, и dir-a/dir-c/file-a теперь снова выводится.
Да, и в этой старой find также нет опций -regex и -wholepath поэтому я не могу использовать сложные шаблоны имен для исключения более глубоких файлов из результатов форм.
Есть ли у вас какие-либо предположения?
