Как найти все файлы с одинаковым расширением в каталоге

63

Я новичок в Linux, и я хочу найти все .confфайлы в /etc/.

Я пытался grep -r *.conf /etc, но результат не правильный.

Что я делаю неправильно?

Адриан Джордж
источник

Ответы:

96

Просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду ниже:

find . -type f -name "*.txt"

Это будет список всех файлов с расширением .txt.

В .начале обозначает текущий каталог. findвыполняет рекурсивный поиск во всех каталогах ниже указанного пути. Если вы хотите, чтобы поиск начинался не с текущего рабочего каталога, укажите путь, например:

find /etc -type f -name "*.conf"

При этом выполняется поиск в /etcкаталоге и во всех его подкаталогах обычных файлов с .confрасширением.

Митч
источник
1
Оно работает. Есть ли альтернативы для этой команды?
Адриан Джордж
1
Вы можете взглянуть на Locate .
Митч
@AdrianGeorge findнастолько широко используется, настолько хорошо документирован, и о нем так много сообщений в StackOverflow / Exchange, что было бы сложнее найти что-то более простое в работе. Почти все, что вы хотели бы сделать, было написано где-то в Интернете.
BallpointBen
6

Я бы лично использовал find, но вы можете использовать и эти вещи:

shopt -s globstar
ls /etc/{,**/}*.conf

И вы можете использовать поиск, и это быстро, но не надежно.

locate '/etc/**.conf'
Оли
источник
Почему не locateнадежный?
Джиральди
1
@Giraldi locateполагается, что база данных mlocate была недавно обновлена, чтобы быть точной. По умолчанию обновление планируется только один раз в день (хотя вы можете принудительно установить его вручную updatedb).
Оли
@ Оли не правда на Максе, правда? думаю, Mac OS обновляет
Mlocate
6

grepищет содержимое файлов, а не имена файлов.

Чтобы найти все .confфайлы, которые /etc/вы хотите найти:

find /etc -name "*.conf"
user184890
источник
2

Команда find медленная, использование этой команды немедленно даст вам результат:

locate "/etc/*.conf"

Более подробную информацию о locateкоманде (в mlocateпакете) можно найти здесь: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab

thucnguyen
источник
locateбыло упомянуто два года назад: askubuntu.com/a/333728/158442
Муру