2014-01-29 4 views
1

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

+0

'git' и' bash' - это две совершенно разные вещи. 'bash' - это оболочка Unix (или Linux). 'git' - программа управления исходным кодом программного обеспечения. Как ответили другие, есть команда Unix/Linux 'find', которая делает то, что вы хотите, и она не зависит от' git' и работает в любой доступной оболочке, включая 'bash'. – lurker

ответ

3

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

find . -name somefile.txt 
0

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

$ find . -name filename.java 

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

$ find . -name \*.java 

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

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

1

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

git ls-files '*Test*.java' 

Чтобы найти все файлы, содержимое которых включает в себя, содержащее слово «FIXME», вы можете использовать

git grep 'FIXME' 
0

вы можете просто запустить эту команду на мерзавец оболочке

находка/-name «имя_файла-вы-хочу-поиск-регулярное выражение разрешенного»

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

2

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

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

+0

Я использую git для Windows и 'find. -name somefile.txt' действительно работает. Например, я пытаюсь найти. -name * .js' и находит все .js-файлы рекурсивно. Сначала потребовалось некоторое время, потому что, я не знаю, Windows? –

+0

У меня было много проблем с неудачным тестом AppVeyor, который использовал 'find' в git bash. Ты спасибо за ответ! Это спасло мой день. 'bin/find' для победы! –