**/* 不包括顶层文件

**/* doesn't include files at top level

我的文件结构如下:

现在,我想列出所有 .txt 文件。据我所知 for file in **/*.txt 应该可以完成这项工作,对吧?至少它在我的 zsh 中有效。但是我的 GitHub 操作忽略了顶层的文件 a.txt。知道如何解决这个问题吗?还是有另一种简单的方法可以通过 GH 操作来做到这一点?

** 是一个并非所有 shell 都支持的扩展。使用 find.

find . -type f -name '*.txt' |
while IFS= read -r file; do
     # do something with file
done

如@KamilCuk 所述,并非所有 shell 都以相同的方式支持 ** 扩展。在我的例子中,GitHub Actions 默认使用 bash 并且 bash(显然)不包含 **/* 的根级别文件(与 zsh 不同,例如)

我最后得到了 for file in *.txt **/*.txt