FIND — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
 
(не показаны 4 промежуточные версии этого же участника)
Строка 24: Строка 24:
 
| -mtime || время последнего изменения файла
 
| -mtime || время последнего изменения файла
 
|-
 
|-
| -newer || искать файлы созданные позже указанной даты
+
| -newer || искать файлы созданные позже указанного файла
 
|-
 
|-
 
| -delete || удалять найденные файлы
 
| -delete || удалять найденные файлы
Строка 48: Строка 48:
 
Поиск файла по имени, начиная с каталога /home:
 
Поиск файла по имени, начиная с каталога /home:
 
  # find /home/ -name <font color=blue>filename</font>
 
  # find /home/ -name <font color=blue>filename</font>
 
 
Поиск по расширению:
 
# find /mnt/disk1/music/ -name "*.<font color=blue>mp3</font>"
 
# find /mnt/disk1/music/ -name '*.<font color=blue>mp3</font>'
 
# find /mnt/disk1/music/ -name \*.<font color=blue>mp3</font>
 
  
  
 
Поиск по части имени:
 
Поиск по части имени:
  # find /root/ -name "*<font color=blue>ass</font>*"
+
  # find /mnt/disk1/music/ -name "*.mp3"
 +
# find /mnt/disk1/music/ -name '*.mp3'
 +
# find /mnt/disk1/music/ -name \*.mp3
 +
# find /mnt/disk1/music/ -name "*ass*"
  
  
Строка 80: Строка 77:
  
  
Поиск файлов с правами "777":
+
Поиск файлов у которых нет владельцев:
  # find /home/ -perm 777
+
# 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
 
  # find /usr/local/etc/ -uid 931
 +
 +
 +
Поиск файлов с правами "777":
 +
# find /home/ -perm 777
  
  
 
Поиск по размеру: "+" больше определённого размера, "-" меньше, без знака - размер равный указанному(можно указывать размеры от блоков (b) до гигабайтов (G)):
 
Поиск по размеру: "+" больше определённого размера, "-" меньше, без знака - размер равный указанному(можно указывать размеры от блоков (b) до гигабайтов (G)):
 
  # find /home/ -size 100k
 
  # 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 срабатывает для символических ссылок, ведущих на заданный файл<br>
 +
-xtype l ограничивает поиск только символическими ссылками - сам файл<br>
 +
/home/admin/123.txt и хардлинки на него(если есть) в результаты поиска не попадут

Текущая версия на 17:13, 20 августа 2021

СИНТАКСИС:

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 и хардлинки на него(если есть) в результаты поиска не попадут