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

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

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

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

6 ответов

Решение

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

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

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

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

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

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

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

Найти все .conf файлы в /etc/ вы хотите найти:

find /etc -name "*.conf"

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

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

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

locate '/etc/**.conf'

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

locate "/etc/*.conf"

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

Как насчет использования простогоlsкоманда:

      ls /etc/*.conf

Вернет все файлы и папки, заканчивающиеся на .conf:

ls -lR /etc | grep ".conf$"

Чтобы найти только файлы:find /etc -type f -name '*.conf'

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