什么是允许我使用 ** 指定任意目录的工具

Kev*_*ang 5 command-line shell directory recursive wildcards

我曾经看到一个同事使用一个工具,它允许使用 ** 来表示任何目录。例如:如果一个名为的文件myfile.java位于内部深处:

src/main/com/mycompany/product/store/myfile.java
Run Code Online (Sandbox Code Playgroud)

src目录父级中的命令:

ls **/myfile.java
Run Code Online (Sandbox Code Playgroud)

可以列出文件。

谁能告诉我是什么工具?我需要使用什么包Ubuntu来实现这一目标?

Arc*_*ege 8

在 bash ?4.0 中,打开该globstar选项。

$ shopt -s globstar
$ echo pylib/**/pyerector.py
pylib/pyerector.py pylib/pyerector/pyerector.py
Run Code Online (Sandbox Code Playgroud)

您可以在联机帮助页中阅读有关它的更多信息。

在 zsh 中,这是开箱即用的。

在 ksh93 中,使用set -o globstar.

在普通的 sh 或 bash ?3.x 中,这是不可用的。