如何在 linuxshell 脚本中使用正则表达式搜索文件

假设,我想从一个 shell 脚本中搜索文件名中包含 python 的文件,这些文件位于 Linux 的所有子目录中。如何使用正则表达式搜索所有位置?

106376 次浏览
find / -name "python"

[填充文本以满足 min。]

查找所有.py 文件。

find / -name '*.py'

查找名称中包含单词“ python”的文件。

find / -name '*python*'

和上面一样,但不区分大小写。

find / -iname '*python*'

正则表达式匹配,更灵活。找到名称中带有“ python”的.py 文件和文件。

find / -regex '.*python.*\|.*\.py'

如果简单的 shell regexp 就足够了,那么可以使用 find

find /linux -name "*python*"

否则,我会说使用 ack ( http://betterthangrep.com/)