Еквівалент Solaris за глибиною / чорносливом?


10

Я намагаюся знайти деякі файли всередині каталогу. За замовчуванням знахідка commandшукає каталог, який я вказав, і це підкаталоги.

Я намагався використовувати depth/maxdepthі prune, але нічого не допомогло це подолати. Чи може хтось вказати на правильний спосіб використання глибини / чорносливу в Solaris?

Мій код виглядає приблизно так:

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

Я отримую таку помилку:

find: bad option 1
find: [-H | -L] path-list predicate-list

Відповіді:


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

Я стикався з цією самою проблемою, і це рішення допомогло. Я провів день, намагаючись знайти рішення, щоб змусити це працювати. Grrr, Solaris.
Кевін Тельєр

Чи бачите якусь проблему, що використовує sed для видалення /./ find $ {directory} / sh /. -назви. -o -тип d -prune -o -принт | sed 's /\/\.\//\//'
Етан Пост

@EthanPost Ви можете це зробити, але знаходьте реалізацію без -mindepthі -maxdepthє породою, що зникає. Якщо у вашій знахідці є -maxdepth, скористайтесяfind /directory/to/traverse -mindepth 1 -maxdepth 1 -name '*.log'
Жил "SO- перестаньте бути злим"

@Gilles Просто потрібен один, щоб зламати вас, коли ви будуєте рамки, які, можливо, знадобляться за таких обставин! Цей ринок колись може бути моїм хлібом та маслом! Дякую за допомогу.
Етан Пост
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.