如何使用通配符 ls 子目录中的所有文件?

How to ls all the files in the subdirectories using wildcard?

ls *可以列出子目录下的所有文件.

ls *.pdb只能列出当前目录下所有扩展名为pdb的文件。

那么如何列出子目录中扩展名为pdb的所有文件?

我的子目录被命名为1, 2, 3, ....我希望输出也包括目录信息,这样我就可以使用输出作为输入文件的集合。例如,输出应该是这样的:

1/a.pdb 1/b.pdb 1/c.pdb 2/a.pdb 2/b.pdb 2/c.pdb 3/a.pdb 3/b.pdb 3/c.pdb

3 个解决方案:

简单glob

ls */*.pdb

递归使用

shopt -s globstar
ls **/*.pdb

递归使用

find . -type f -name '*.pdb'

也试试这个:

locate */*.pdb

它用于以前制作的数据库

你可以看到区别,如果你编码一些 Python 然后立即使用两者

locate */*.py
ls */*.py