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


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"

2

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

locate "/etc/*.conf"

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


locateбыло упомянуто два года назад: askubuntu.com/a/333728/158442
Муру
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.