Эквивалент "глобстар" в тире (оболочка Debian Almquist)

Я использую /bin/dash на проекте, но мне нужно для **/filename.ext иметь рекурсивное поведение (т.е. globstar включен в bash).

Является globstar доступно в dash? Есть ли подобная особенность или альтернативный механизм?

1 ответ

При просмотре справочной страницы globstar недоступен в Dash, и аналогичной функции нет. Dash даже не поддерживает массивы, поэтому работать с именами файлов сложно.

Самое близкое, что я могу придумать, это составить список имен файлов, используя, например, findОднако имена файлов, содержащие символы новой строки, могут испортить список, поэтому вы можете сначала проверить их с помощью

find . -print0 | grep -zPq '\n'

которая вернет успех, если найдет, и ошибку, если не найдет.

Или, в зависимости от ваших потребностей, вы можете поставить find . -print0 в конвейере с любыми командами, которые вам нужно запустить, или вывести в файл, а затем проанализировать файл.

Другие вопросы по тегам