Я новичок в 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