Примеры команд GNU Find для поиска файлов в Linux

Введение

Как пользователь или администратор Linux, вы часто сталкивались с необходимостью поиска файлов в разных каталогах операционной системы. Нелегко вручную сканировать структуру каталогов, чтобы найти нужные файлы, поскольку на компьютере с Linux могут быть сотни или тысячи каталогов. Наиболее распространенной и эффективной командой для достижения этой цели является команда Linux find. Здесь я собираюсь перечислить 10 практических примеров того, как находить файлы по разным критериям в Linux.

Примечание. Команды выделены жирным шрифтом, а выходные данные — нет.

  1. Найдите все файлы с именем execute.py в текущем рабочем каталоге,

найти . -name «execute.py»

2. Найдите все файлы размером более 1 ГБ во всем корневом каталоге,

find / -type f -size +1G
/proc/kcore
/root/bigfile.txt

3. Найти файлы с разрешением 777 во всей корневой директории,

найти / -type f -perm 777
/root/iamempty.txt

4. Нахождение нескольких файлов расширения .cpp во всем корневом каталоге.

найти/-ввести f-имя "*.cpp"
/root/testfile.cpp

5. Найдите пустые файлы в корневом каталоге, принадлежащем пользователю «admin», но игнорируйте файлы в каталоге /proc. Для этого мы используем -пустой параметр.

find / -path /proc -prune -o -type f -user admin -empty
/proc
/var/spool/mail/admin
/var/ tmp/emptyfile.txt
/tmp/adminfile.txt

6. Найдите пустые файлы в текущем каталоге и 1 каталоге ниже. не следует глубже искать пустые файлы за пределами этого каталога. Для этого мы используем параметр -maxdepth,

find /root -maxdepth 2 -type f -empty
/root/testfile.cpp
/root/test/emptynew.txt

7. Найдите файлы, которые не изменялись более 90 дней, в каталоге /var/tmp, принадлежащем пользователю «admin». Перенаправить вывод ошибок, если они есть, на null, чтобы мы не видели ошибок,

find /var/tmp/ -type f -mtime +90 -user admin 2› /dev/null
/var/tmp/adminnewfile.txt

8. То же, что и 7, но дополнительно удалите найденные файлы (всегда используйте команду удаления с осторожностью. Вы не хотите удалять то, что нужно),

найти /var/tmp/ -type f -mtime +90 -user admin| xargs /bin/rm

9. Найдите все каталоги с файлами, принадлежащие пользователю «admin», в каталоге /var, но ничего не показывайте внутри каталога /var/tmp/test. Для этого мы используем опцию -prune. Помните, что в Linux все является файлом, включая каталоги. Следовательно, если каталог test найден, не сходите в него.

find /var -path /var/tmp/test -prune -o -user admin
/var/spool/mail/admin
/var/tmp/adminfilenew.txt /var/tmp/тест

10. Найдите файл «passwd», используя параметр -iname (игнорировать регистр в именовании) в корневом каталоге, и выполните для него команду grep, чтобы отобразить строки, начинающиеся со слова «admin».

find / -iname «passwd» -exec grep -i «^admin» {} \; 2› /dev/null
admin:x:1002:1003::/home/admin:/bin/bash

Заключение

Команда Find — очень полезный инструмент для поиска и поиска файлов, а также выполнения над ними операций. Мы только поцарапали верхушку айсберга. С ним по-прежнему доступно подавляющее большинство вариантов. Какими другими способами вы использовали команду «Найти»? Дайте мне знать в комментариях.

Новичок в трейдинге? Попробуйте криптотрейдинговых ботов или копи-трейдинг