dash 中的“globstar”等效项(Debian Almquist Shell)

dash 中的“globstar”等效项(Debian Almquist Shell)

我在一个项目中使用/bin/dash,但我需要**/filename.ext有递归行为(即globstar在中启用bash)。

globstardash?是否有类似的功能或替代机制?

答案1

从手册页来看,Dash 中没有 globstar,也没有类似的功能。Dash 甚至不支持数组,因此处理文件名很困难。

我能想到的最接近的方法是使用例如制作文件名列表find,但是包含换行符的文件名会弄乱列表,因此您可以先使用以下命令对它们进行检查

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

如果找到则返回成功,如果没有找到则返回失败。

或者根据您的需要,您可以find . -print0在管道中放入您需要运行的任何命令,或者输出到文件然后解析该文件。

相关内容