FIND

Материал из megapuper
Перейти к: навигация, поиск

СИНТАКСИС:

find где_искать ключ
Ключ Описание
-name искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки
-type тип искомого: f=файл, d=каталог, l=связь (link)
-uid владелец: имя пользователя или UID
-group владелец: группа пользователя или GID
-perm указываются права доступа
-size размер: указывается в 512-байтных блоках или байтах (признак байтов – символ ‘c’ за числом)
-atime время последнего обращения к файлу
-ctime время последнего изменения владельца или прав доступа к файлу
-mtime время последнего изменения файла
-newer искать файлы созданные позже указанного файла
-delete удалять найденные файлы
-ls генерирует вывод как команда ls -dgils
-print показывает на экране найденные файлы
-exec command {} \; выполняет над найденным файлом указанную команду; обратите внимание на синтаксис
-ok перед выполнением команды указанной в -exec, выдает запрос
-depth начинать поиск с самых глубоких уровней вложенности, а не с корня каталога
-prune используется, когда вы хотите исключить из поиска определенные каталоги


Искать все файлы в текущем каталоге:

# find .


Поиск файла по имени, начиная с каталога /home:

# find /home/ -name filename


Поиск по части имени:

# find /mnt/disk1/music/ -name "*.mp3"
# find /mnt/disk1/music/ -name '*.mp3'
# find /mnt/disk1/music/ -name \*.mp3
# find /mnt/disk1/music/ -name "*ass*"


Поиск файлов, которые не читались более чем (условие 'более чем' задается знаком '+' 30 дней:

# find /home/ -atime +30


Поиск файлов не изменявшихся более чем 5 дней:

# find /home/ -mtime +5


Поиск файлов изменявшихся менее чем 2 дня назад:

# find /home/ -mtime -2


Поиск файлов изменявшихся более 5, но менее 10 дней назад:

# find /home/ -mtime +5 -mtime -10 


Поиск и удаление найденных файлов:

# find /home/ -name "*.old" -delete


Поиск файлов у которых нет владельцев:

# find /root/ -nouser


Поиск файлов принадлежащих или пользователю root или полюзователю www-data(здесь оператор -o значит "или"):

# find /www/ -user root -o -user www-data


Поиск фалов не принадлежащих польлзователю root:

# find /www/ -not -user root


Поиск файлов принадлежащих пользователю, можно искать и по имени владельца:

# find /usr/local/etc/ -uid 931


Поиск файлов с правами "777":

# find /home/ -perm 777


Поиск по размеру: "+" больше определённого размера, "-" меньше, без знака - размер равный указанному(можно указывать размеры от блоков (b) до гигабайтов (G)):

# find /home/ -size 100k


Поиск файлов принадлежащих пользователю root и совершение над ними действия, в данном случае изменение владельца на www-data:

# find -user root -exec chown www-data {} \;


Найти все симлинки, которые ссылаются на определенный путь

# find -L /home -samefile /home/admin/123.txt -xtype l

-samefile при наличии опции -L срабатывает для символических ссылок, ведущих на заданный файл
-xtype l ограничивает поиск только символическими ссылками - сам файл
/home/admin/123.txt и хардлинки на него(если есть) в результаты поиска не попадут