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