15 самых полезных применений команды find в Linux

В этой статье мы рассмотрим 15 полезных применений команды find. Олдовые линуксойды здесь врядли найдут для себя что-то новое, однако если хочется повторить матчасть, или узнать как эффективнее работать в консоли, то эта статья для вас.

В общем виде команда поиска выглядит так:

find /dir/to/search -name "pattern" -print

Где /dir/to/search — начальная точка поиска, а pattern — образец, в соответствии с которым сопоставляются именя файлов. Print — это указание, что для всех найденных файлов нужно напечатать полный путь. Причем, мощь командной строки Linux в том, что -print можно заменить вообще на любое действие с файлом: переименовать, переместить, удалить, что угодно. Такой гибкости вы не получите ни через один ГУЙ.

Полезные примеры использования Find

find $HOME -name "*.mp3" -print

Отыщет все mp3 в домашнем каталоге (если конечно этот архаизм у кого-то еще остался на локальных машинах) пользователя и глубже по всем вложенным директориям.

find . -print

Напечатает иерархию поддиректорий начиная с текущей директории.

find . -perm -o+w

Найдет все файлы, в которые может писать любой желающий (помимо владельца и члена группы владельца). Такие файлы очень полезно выявлять и исправлять у них права. Полезно в плане безопасности.

find / -type d -name hotgirls

Найдет на всех дисках директории с именем hotgirls

find / -type f -perm 0777 -print

Найдет все файлы, в которые может писать любой желающий и при этом они являются исполняемыми. Настоящий источник заразы. Запустите эту команду из интереса. Если найдется хотя бы один такой файл, то вам стоит задуматься о повышении безопасности вашей системы.

find / -perm /u=s

Найти все файлы с установленным битом SUID. Эти файлы запускаются с правами владельца. То есть, если исполнимый файл принадлежит root — а таких большинство в системе — и флаг SUID установлен, то в случае запуска этой программы непривилегированным пользователем программа получит полномочия суперпользователя. SUID-файлы нужны, но чем их меньше, тем лучше.

find / -type f -perm 0777 -print -exec chmod 644 {} \;

Найти все опасные файлы с правами 777 и перепилить их в безопасный режим 0644 — владелец может читать и писать, остальные только читать.

find / -type f -name "*.mp3" -exec rm -f {} \;

Стереть все mp3.

find /tmp -type d -empty

Найти все пустые директории.

find /tmp -type f -name ".*"

Найти все скрытые файлы.

find / -cmin -60

Найти все файлы, которые изменялись в течении последнего часа.

find / -size +50M

Найти все файлы, имеющие размер от 50 Мб.

find / -type f -name *.mp3 -size +10M -exec rm {} \;

Найти все MP3-файлы, которые весят слишком много — более 10 Мб — и выпилить их с диска.

Ссылки

Обсуждение

Ваш комментарий:
   ____ ______  ____      __   ____   __ __
  / __//_  __/ / __ \ __ / /  / __/  / // /
 _\ \   / /   / /_/ // // /  / _/   / _  / 
/___/  /_/    \____/ \___/  /_/    /_//_/