Как найти все файлы с одинаковым расширением в каталоге
Я новичок в 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
Вернет все файлы и папки, заканчивающиеся на .conf:
ls -lR /etc | grep ".conf$"
Чтобы найти только файлы:find /etc -type f -name '*.conf'