====== Поиск в системе ======
===== find =====
Ищет объекты и выводит имена и местоположение в стандартный вывод.\\
* **-iname (-name)** - не чувствительно (чувствительно) к регистру.
* **-exec command {} \; (-ok)** - выполнить указанную команду над найденным объектом (запрос перед выполнением).
* **-regex** - по регулярному выражению.
* **-type** - тип искомого: f=файл, d=каталог, l=ссылка, p=канал, s=сокет.
* **-maxdepth** - глубина поиска (1 - текущего каталога).
* **-name** - точное совпадение
* **-exec** - выполнить команду для каждого найденного объекта
* **-printf** - формат вывода результата
:!: Примеры
# Поиск файлов в системе по имени
find /usr/* -name "default_template.go"
# Поиск указанных папок и копирование их
find . -name "fold_*" -type d -exec "cp {} /to_folder/"
# Либо так еще можно, подставляем результаты поиска в команду копирования.
cp `find /var/log/ --maxdepth 1 -iname "*.1"` ~/logs
# Исключить путь из поиска
# (все изи файлы, кроме пути "/opt/App/jenkins")
find /opt/App/ -path "/opt/App/jenkins" -prune -o -name *.ini
# Так же есть пар-р "-not -path", но он так же проходит все расположения, просто возвращает false при проверке, вариант выше же скипает полностью папку
find /opt/App/ -not -path "/opt/App/jenkins/*" -name *.ini
# Поиск по содержимому файлов, с исключением папки логов
find * -type f -not -path "logs/*" -exec grep -l "*TLS*" {} \;
#
===== locate =====
Не запускает новый поиск в ФС а активирует в существующем индексе, индекс может устареть, обновляется с каждым запуском ОС или командой **# updatedb**.\\
===== grep (содержимое) =====
Позволяет искать вхождение указанных строк в содержимом файлов
* **-r** - вложенный поиск
* **-o** - вывод только содержимого (вроде)
* **-w** - совпадение всего слова
* **-x** - вывод всей строки (вроде)
grep -r "text" /folder/*