Эквивалент "глобстар" в тире (оболочка Debian Almquist)
Я использую /bin/dash на проекте, но мне нужно для **/filename.ext иметь рекурсивное поведение (т.е. globstar включен в bash).
Является globstar доступно в dash? Есть ли подобная особенность или альтернативный механизм?
1 ответ
При просмотре справочной страницы globstar недоступен в Dash, и аналогичной функции нет. Dash даже не поддерживает массивы, поэтому работать с именами файлов сложно.
Самое близкое, что я могу придумать, это составить список имен файлов, используя, например, findОднако имена файлов, содержащие символы новой строки, могут испортить список, поэтому вы можете сначала проверить их с помощью
find . -print0 | grep -zPq '\n'
которая вернет успех, если найдет, и ошибку, если не найдет.
Или, в зависимости от ваших потребностей, вы можете поставить find . -print0 в конвейере с любыми командами, которые вам нужно запустить, или вывести в файл, а затем проанализировать файл.