我目前正在使用Git Bash导航文件目录和编辑文件。我想知道是否有命令可以搜索当前目录及其中的所有目录以查找文件名。
5 回答
是的,它带有find 实用程序。要从当前工作目录开始递归搜索名为“somefile.txt”的文件,应使用以下方法:
find . -name somefile.txt
如果您在 Windows 上使用 Git Bash,那么它很可能find
会指向 Windows 附带的 Find 工具,而不是 Git Bash 提供的工具。Windows Find 工具在一个或多个文件中搜索文本,类似于Unix的grep
.
您可以通过执行来验证which find
。如果它指向您的 Windows 文件夹,则它不是 Unix 工具。
要确保您使用的find
是 Git Bash shell 中的 Unix,请键入/bin/find
. 现在该-name
参数将如其他答案所示工作。
如果你想从当前目录递归地查找所有包含单词'Test'的java文件名,你可以使用
git ls-files '*Test*.java'
要搜索其内容包含包含单词“FIXME”的所有文件,您可以使用
git grep 'FIXME'
Git Bash 是底层的bash
外壳,因此所有标准的 Unix 实用程序都将可用。标准find
实用程序可以正常工作:
$ find . -name filename.java
将filename.java
在您的目录/子目录中找到。请注意,您必须转义通配符,否则 shell 本身会解释这个,例如
$ find . -name \*.java
会给你所有的.java
文件
find
功能强大,但使用起来可能很复杂。在这里查看教程。
你可以简单地在 git shell 上运行这个命令:
find / -name 'filename-you-want-search-regex-allowed'
这将/
在文件系统中搜索以下所有文件。