Поиск файлов в терминале 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-разрешено'
Это будет искать все файлы от корня через файловую систему.