Я початківець в 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, і це швидко, але не надійно.
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