Поиск файлов в терминале Git Bash

В настоящее время я использую Git Bash для навигации по файловым каталогам и редактирования файлов. Я хочу знать, есть ли команда для поиска текущего каталога и всех каталогов в нем по имени файла.

5 ответов

Да, он поставляется с утилитой поиска. Для рекурсивного поиска файла с именем "somefile.txt", начиная с текущего рабочего каталога, должно работать следующее:

find . -name somefile.txt

Если вы используете Git Bash в Windows, вполне возможно, что "find" будет указывать на инструмент поиска, который поставляется с Windows, а не на тот, который предоставляется Git Bash. Средство поиска Windows принимает разные параметры, поэтому приведенные выше ответы не будут работать.

Чтобы убедиться, что вы используете Unix find из оболочки Git Bash, введите /bin/find. Теперь параметр -name будет работать.

Если вы хотите найти, например, все имена файлов Java, содержащие слово "Test", рекурсивно из текущего каталога, вы можете использовать

git ls-files '*Test*.java' 

Для поиска всех файлов, содержимое которых содержит слово "FIXME", вы можете использовать

git grep 'FIXME'

Git Bash является bash оболочка внизу, и как таковые будут доступны все стандартные утилиты Unix. Стандарт find Утилита будет работать нормально:

$ find . -name filename.java 

найду filename.java в вашем каталоге / подкаталогах. Обратите внимание, что вы должны избегать подстановочных знаков, иначе сама оболочка будет интерпретировать это, например:

$ find . -name \*.java 

даст вам все .java файлы

find является мощным, но может быть сложным в использовании. Проверьте учебник здесь.

Вы можете просто запустить эту команду в git shell

find / -name 'filename-you-want-search-regex-разрешено'

Это будет искать все файлы от корня через файловую систему.

Другие вопросы по тегам