Команда find применяется для поиска файлов и каталогов по различным критериям, таким как имя, размер, тип и время изменения. Например, найдем все файлы с расширением .txt в каталоге Documents текущего пользователя и его подкаталогах:
eugene@Eugene:~$ find ~/Documents -name "*.txt" /home/eugene/Documents/test/hello.txt eugene@Eugene:~$
Первый аргумент команды — это начальный каталог поиска. А параметр -name
используется для указания соответствующего шаблона имени файла. Символ * — это подстановочный знак, который соответствует любому количеству символов, а *.txt
соответствует всем файлам, оканчивающимся на ".txt".
Команда find позволяет не только находить файлы по их именам. Например, можно найти файлы по их размеру, владельцу, разрешениям и многим другим параметрам. Опции для поиска файлов:
-amin
n: находит все файлы, к которым последний раз обращались менее n минут назад. Например, find -amin 5
выдаст все файлы, к которым обращались менее пяти минут назад.
-executable
: находит все исполняемые файлы.
-group name
: показывает все файлы, владельцем группы которых является пользователь с логином "name".
-mmin
n: показывает все файлы, которые последний раз были изменены менее n минут назад.
-newer
file показывает все файлы новее, чем файл file.
-nogroup, -nouser
: показать все файлы, у которых нет группы или владельца.
-perm
mode: находит все файлы, для которых установлен режим разрешений .mode
-size
n: находит все файлы размера n. С помощью этого параметра также можно найти файлы больше или меньше определенного размера. Например, команда find / -size +2G
позволит найти все файлы размером более 2 гигабайт. При использовании этого параметра также применяются K, M и G для килобайтов, мегабайтов и гигабайтов соответственно.
Знак + позволяет задать поиск файлов, размер которых превышает определенный.
-type
t: находит файлы определенного типа. Наиболее интересные типы файлов, которые вы можете искать с помощью этой опции, — это d для каталога или f для обычного файла (то есть любого файла, не являющегося каталогом).
Также можно комбинировать разные варианты, например, найти все файлы пользователя eugene, размером более 100 МБ:
find ~ -user eugene -size +100M
Команда whereis применяется для поиска бинарных, исходных файлов и файлов страниц руководств для определенной команды. Например, найдем местоположение команды find
:.
eugene@Eugene:~$ whereis find find: /usr/bin/find /usr/share/man/man1/find.1.gz /usr/share/info/find.info-1.gz /usr/share/info/find.info-2.gz /usr/share/info/find.info.gz eugene@Eugene:~$
Или найдем местоположение команды "gcc" (компилятора языка Си):
eugene@Eugene:~$ whereis gcc gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/gcc /usr/share/man/man1/gcc.1.gz eugene@Eugene:~$