# Команда find

#### Основной синтаксис команды

find <mark style="color:blue;">\[папка]</mark><mark style="color:orange;">\[параметры]</mark><mark style="color:blue;">критерий шаблон\[действие]</mark>

Параметры

<table data-header-hidden><thead><tr><th width="151"></th><th></th></tr></thead><tbody><tr><td>-P</td><td>Никогда не открывать символические ссылки</td></tr><tr><td>-L</td><td>Получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.</td></tr><tr><td>-maxdepth</td><td>Максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1</td></tr><tr><td>-depth</td><td>Искать сначала в текущем каталоге, а потом в подкаталогах</td></tr><tr><td>-mount</td><td>Искать файлы только в этой файловой системе</td></tr><tr><td>-version</td><td>Показать версию утилиты find</td></tr><tr><td>-print</td><td>Выводить полные имена файлов</td></tr><tr><td>-type f</td><td>Искать только файлы</td></tr><tr><td>-type d</td><td>Поиск папки в Linux</td></tr><tr><td>-type l</td><td>Искать симлинки</td></tr></tbody></table>

Критерии

<table data-header-hidden><thead><tr><th width="144"></th><th></th></tr></thead><tbody><tr><td>-name</td><td>Поиск файлов по имени</td></tr><tr><td>-perm</td><td>Поиск файлов в Linux по режиму доступа</td></tr><tr><td>-user</td><td>Поиск файлов по владельцу</td></tr><tr><td>-group</td><td>Поиск по группе</td></tr><tr><td>-mtime</td><td>Поиск по времени модификации файла</td></tr><tr><td>-atime</td><td>Поиск файлов по дате последнего чтения</td></tr><tr><td>-nogroup</td><td>Поиск файлов, не принадлежащих ни одной группе</td></tr><tr><td>-nouser</td><td>Поиск файлов без владельцев</td></tr><tr><td>-newer</td><td>Найти файлы новее чем указанный</td></tr><tr><td>-size</td><td>Поиск файлов в Linux по их размеру</td></tr></tbody></table>

#### Эта команда найдёт как php, так и html файлы:

```
find -name "*.html" -o -name "*.php"
```

#### Найти файлы с определенной маской прав, например, 0664:

```
find . -type f -perm 0664
```

#### Найти только исполняемые файлы:

```
find /bin -maxdepth 2 -perm /a=x
```

#### Найти все файлы размером 50 мегабайт:

```
find / -size 50M
```

#### От пятидесяти до ста мегабайт:

```
find / -size +50M -size -100M
```

#### Поиск пустых файлов и папок:

```
find /tmp -type f -empty
```

```
find ~/ -type d -empty
```

Для выполнения произвольных команд для найденных файлов используется опция -exec. Например, для того чтобы найти все пустые папки и файлы, а затем выполнить ls для получения подробной информации о каждом файле используйте:

```
find . -empty -exec ls -ld {} \;
```

#### Удалить все текстовые файлы в tmp

```
find /tmp -type f -name "*.txt" -exec rm -f {} \;
```

#### Удалить все файлы больше 100 мегабайт:

```
find /home/bob/dir -type f -name *.log -size +100M -exec rm -f {} \;
```
