Солярис эквивалентен по глубине / черносливу?

10

Я пытаюсь найти некоторые файлы в каталоге. По умолчанию поиск commandищет каталог, который я указал, и его подкаталоги.

Я пытался использовать depth/maxdepthи prune, но ничто не помогло преодолеть это. Может кто-нибудь указать правильный способ использования глубины / сокращения в Solaris?

Мой код выглядит так:

find file_path -depth 1 -name '*.log'

Я получаю следующую ошибку:

find: bad option 1
find: [-H | -L] path-list predicate-list
user295338
источник

Ответы:

15

Вы путаете два несвязанных варианта, которые имеют примерно одинаковые имена:

  • -depthне принимает никаких аргументов. Если он присутствует, он указывает findобработать содержимое каталога перед обработкой самого каталога.
  • -maxdepth N (где N - целое число) ограничивает рекурсию N уровнями подкаталогов.

-maxdepthВариант является расширением найден в некоторых версиях find, но не для Solaris. Есть хитрость в использовании только стандартных опций для findобработки каталога без рекурсии: использовать -pruneв подкаталогах, но исключить каталог верхнего уровня. Поскольку единственный способ сопоставить каталог верхнего уровня - по имени, укажите имя .(которое никогда не будет именем подкаталога).

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print
Жиль "ТАК - перестань быть злым"
источник
Я столкнулся с этой самой проблемой, и это решение помогло. Я провел день, пытаясь найти решение, чтобы заставить это работать. Гррр, Солярис.
Кевин Тельджоур
Видите ли вы какие-либо проблемы с использованием sed для удаления /./ find $ {directory} / sh /. -имя . -o -тип d -prune -o -print | sed 's /\/\.\//\//'
Ethan Post
@EthanPost Вы можете сделать это, но найти реализации без -mindepthи -maxdepthявляются исчезающей породой. Если ваша находка имеет -maxdepth, используйтеfind /directory/to/traverse -mindepth 1 -maxdepth 1 -name '*.log'
Жиль "ТАК - перестань быть злым"
@Gilles Просто нужен один, чтобы сломать вас, когда вы создаете фреймворк, который может потребоваться для работы именно в таких условиях! Этот рынок может быть моим хлебом с маслом когда-нибудь! Спасибо за помощь.
Итан Пост