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