Я новичок в Linux, и я хочу найти все .conf
файлы в /etc/
.
Я пытался grep -r *.conf /etc
, но результат не правильный.
Что я делаю неправильно?
Я новичок в Linux, и я хочу найти все .conf
файлы в /etc/
.
Я пытался grep -r *.conf /etc
, но результат не правильный.
Что я делаю неправильно?
Ответы:
Просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду ниже:
find . -type f -name "*.txt"
Это будет список всех файлов с расширением .txt
.
В .
начале обозначает текущий каталог. find
выполняет рекурсивный поиск во всех каталогах ниже указанного пути. Если вы хотите, чтобы поиск начинался не с текущего рабочего каталога, укажите путь, например:
find /etc -type f -name "*.conf"
При этом выполняется поиск в /etc
каталоге и во всех его подкаталогах обычных файлов с .conf
расширением.
find
настолько широко используется, настолько хорошо документирован, и о нем так много сообщений в StackOverflow / Exchange, что было бы сложнее найти что-то более простое в работе. Почти все, что вы хотели бы сделать, было написано где-то в Интернете.
Я бы лично использовал find
, но вы можете использовать и эти вещи:
shopt -s globstar
ls /etc/{,**/}*.conf
И вы можете использовать поиск, и это быстро, но не надежно.
locate '/etc/**.conf'
locate
надежный?
locate
полагается, что база данных mlocate была недавно обновлена, чтобы быть точной. По умолчанию обновление планируется только один раз в день (хотя вы можете принудительно установить его вручную updatedb
).
grep
ищет содержимое файлов, а не имена файлов.
Чтобы найти все .conf
файлы, которые /etc/
вы хотите найти:
find /etc -name "*.conf"
Команда 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