Еквівалент 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.