summaryrefslogtreecommitdiff
path: root/LINUX/FIND.md
diff options
context:
space:
mode:
Diffstat (limited to 'LINUX/FIND.md')
-rw-r--r--LINUX/FIND.md156
1 files changed, 156 insertions, 0 deletions
diff --git a/LINUX/FIND.md b/LINUX/FIND.md
new file mode 100644
index 0000000..8ae6c17
--- /dev/null
+++ b/LINUX/FIND.md
@@ -0,0 +1,156 @@
+```sh
+find . # find ..
+
+find /var/log | less
+
+# ищем файлы по маске:
+find . -name "*.json"
+find . -name "f*.json"
+
+# ищем файлы по маске только с 1 уровнем вложенности:
+find . -maxdepth 1 -name "*.json"
+
+# ищем только файлы:
+find . -type f -name "*first*"
+
+# ищем только папки:
+find . -type d -nameo "*first*"
+
+# ищем файл с исключением папки:
+find . -type d -path ./<folderName> -prune -o -name "*.json" - print
+
+find . -type d -name "*<folderName*"> -prune -o -name "*.json" - print
+
+# поиск без учета регистра:
+find . -iname "*.JSoN"
+
+# поиск файлов которые были изменены ДО:
+find . -type f -atime 0 # =0= суток
+
+# или ПОСЛЕ:
+find . -type f -mtime 0 # =0= суток
+
+# найти файлы доступ к которому был позднее чем:
+find . -type f -anewer <fileName>
+
+# найти файлы измененные позднее чем:
+find . -type f -cnewer <fileName>
+
+# ищем файлы размером:
+find . -type f -size 140M
+
+# ищем файлы размером больше чем:
+find . -type f -size +140M
+
+# ищем файлы размером меньше чем:
+find . -type f -size -140M
+
+# ищем файлы размером между:
+find . -type f -size -140M -a -type f -size +120M
+
+# отображаем размер файлов с сортировкой по размеру:
+find . -type f -exec du -sh {} \; | sort -h | tail -3 # или | head -3
+
+# вывести содержимое всех файлов:
+find . -type f -exec {} \;
+
+# вывести содержимое всех файлов с разделением:
+find . -type f -exec ls -la {} \; -exec cat {} \; -exec echo "" \;
+```
+=======================================
+💡 Архивируйте и удаляйте логи старше 7 дней с помощью этой команды:
+
+`find /var/log -type f -mtime +7 -exec tar -rvf old_logs.tar {} \; -exec rm {} \;
+
+🌟 Вы также можете запланировать это в cron, чтобы автоматизировать очистку!
+
+=======================================
+⚙️ **Поиск последних измененных файлов в Linux**
+
+Когда нужно найти недавно измененные файлы, например, для отладки или мониторинга активности, можно использовать команду find.
+
+**📌 Поиск файлов по времени изменения**
+
+**🟢 Найти файлы, измененные за последние 24 часа:**
+
+find /path/to/dir -type f -mtime -1
+
+Выведет файлы, измененные за последние сутки.
+
+**🟢 Найти файлы, измененные за последние 10 минут:**
+
+find /var/log -type f -mmin -10
+
+Полезно для отслеживания активных логов.
+
+**🟢 Вывести 10 последних измененных файлов:**
+
+ls -lt | head -10
+
+Сортирует файлы по времени изменения и показывает 10 самых свежих.
+
+🗣 **Эти команды помогают быстро находить файлы, с которыми недавно работали, а также анализировать активность в системе.**
+
+=======================================
+⚙️ **Поиск и удаление пустых файлов и папок в Linux**
+
+Со временем в системе накапливаются пустые файлы и каталоги, занимая место и создавая беспорядок. Эти команды помогут быстро их найти и удалить.
+
+**📌 Поиск и очистка пустых файлов и папок**
+
+**🟢 Найти все пустые файлы в каталоге:**
+
+find /path/to/dir -type f -empty
+
+Выведет список всех пустых файлов в указанной директории.
+
+
+**🟢 Удалить все пустые файлы:**
+
+find /path/to/dir -type f -empty -delete
+
+Автоматически удалит все найденные пустые файлы.
+
+
+**🟢 Найти все пустые папки:**
+
+find /path/to/dir -type d -empty
+
+Выведет список пустых каталогов.
+
+
+**🟢 Удалить пустые папки:**
+
+find /path/to/dir -type d -empty -delete
+
+Очищает систему от ненужных пустых директорий.
+
+➡️ **Автоматическая проверка битых символических ссылок в Linux**
+```sh
+#!/bin/bash
+
+# Целевая директория
+TARGET_DIR="$HOME"
+
+# Поиск и удаление битых симлинков
+find "$TARGET_DIR" -xtype l -print -delete
+
+echo "✅ Все битые символические ссылки удалены из $TARGET_DIR"
+```
+🟢 Использует find с флагом -xtype l для поиска битых ссылок
+🟢 Удаляет только символические ссылки, указывающие на несуществующие файлы.
+
+➡️ **Можно добавить в crontab для автоматической очистки раз в месяц:**
+`0 5 1 * * /path/to/script.sh
+
+🗣 **Эти команды помогают поддерживать порядок в системе и освобождать место на диске.**
+
+#=========================
+🖥 Команда **find** очень мощная, но многие пользователи не осознают, насколько гибкой может быть опция -exec!
+
+🌟 Так можно найти и удалить все файлы .log, которым больше 7 дней:
+`find /path/to/logs -type f -name "*.log" -mtime +7 -exec rm {} \;
+
+🌟 А вот так найти и сжать все файлы .txt:
+`find /path/to/files -type f -name "*.txt" -exec gzip {} \;
+