Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒FreeBSD and Nix⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

Linux поиск с помощью find


 

Linux поиск с помощью find


Утилита find в Linux имеет следующий синтаксис:
find <путь_поиска> <опции> <критерии> <шаблон> 

Полный список опций и критериев:
man find


Популярные <опции> поиска:
-maxdepth - максимальная глубина поиска по поддиректориям
-print - вывести полные имена файлов
-type f - искать тип "файлы"
-type d - искать тип "директории"
-type l - искать тип "ссылка"
-type p - искать тип "pipe"
-type s - искать тип "сокет"


Популярные <критерии> поиска:
-name - по имени 
-size - по размеру 
-group - по группе 
-user - по владельцу 
-perm - по разрешениям доступа
-empty - пустые директории
-mtime - по времени модификации (в днях)
-atime - по дате последнего чтения (в днях)
-mmin - по времени изменения (в минутах)
-amin - по времени последнего обращения (в минутах)
-newermt - по файлам, которые изменялись (указывается дата)
-regex - по имени (регулярное выражение)
-delete - удалить найденные совпадения
-exec <команда> {} \; - выполнить команду с найденным
-ok - запросить подтверждение перед выполнением -exec

 

Логические операторы сравнения:
-a - логическое "И"
-o - логическое "ИЛИ"
-! - логическое "НЕ"
-not - логическое "НЕ"


Примеры поиска


Для удобства вывода "дата модификации имя файла" добавь в конце команды:

Илидобавьте опцию в команду find (дата модификации отсортирует по имени):


По именам

Поиск по имени файла:
find ~/ -name "test.txt" | xargs ls -l | awk '{print $6" "$7" "$8" "$9}'
find ~/ -name "test.txt" -printf '%TY-%Tm-%Td %TT %p\n' | sort -r

Поиск по части имени файла:
find /etc -name "*.conf"

Поиск исключая части имени файла:
find /etc ! -name "*.conf"

Поиск с логическим "И", начинается на "l", заканчивается на "f"
find /etc -name "l*" -a -name "*f"


По типу и разрешениям

Искать только файлы:
find ~/ -type f

Искать только с правами на чтение и запись:
find ~/ -perm 664


По датам и времени изменений

Поиск по файлам, которые изменялись ранее, чем 10 дней назад:
find ~/ -type f -mtime +10 | xargs ls -l | awk '{print $6" "$7" "$8" "$9}'

Поиск по файлам, которые изменялись начиная с указанной даты:
find ~/ -type f -newermt "2020-04-25 00:00"

Поиск по файлам, которые изменялись в промежутке указанных дат:
find ~/ -type f -newermt "2020-04-10" ! -newermt "2020-04-28"

Поиск по файлам, где были обращения начиная с указанной даты:
find ~/ -type f -newerat "2020-04-29"

Поиск по файлам, где были обращения в промежутке указанных дат:
find ~/ -type f -newerat "2020-04-08" ! -newerat "2020-04-29"

Поиск по файлам, где дата создания начинается с указанной:
find ~/ -type f -newerct "2020-04-29"

Поиск по файлам, где дата создания в промежутке указанных дат:
find ~/ -type f -newerct "2020-04-08" ! -newerat "2020-04-29"


По содержанию

Поиск рекурсивно без учета регистра по содержанию внутри файла:
sudo find /etc/ssh -type f -exec grep -i -H "OpenSSH" {} \;


Поиск с выполнением команды:

Поиск и удаление найденных c выводом того, что было удалено:
touch ~/testfile && find ~/ -name "testfile" -print -exec rm {} \;

Поиск и переименование найденных c выводом того, что было переименовано:
touch ~/testfile && find ~/ -name "testfile" -print -exec mv {} mvtf1 \;
touch ~/testfile && find ~/ -name "testfile" | xargs -I '{}' mv {} mvtf2

Поиск и передача конвееру:
touch ~/tf && find ~/ -name "tf" -exec ls -l {} \; | awk '{print $9}'

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru