Примеры команд GNU Find для поиска файлов в Linux
Введение
Как пользователь или администратор Linux, вы часто сталкивались с необходимостью поиска файлов в разных каталогах операционной системы. Нелегко вручную сканировать структуру каталогов, чтобы найти нужные файлы, поскольку на компьютере с Linux могут быть сотни или тысячи каталогов. Наиболее распространенной и эффективной командой для достижения этой цели является команда Linux find. Здесь я собираюсь перечислить 10 практических примеров того, как находить файлы по разным критериям в Linux.
Примечание. Команды выделены жирным шрифтом, а выходные данные — нет.
- Найдите все файлы с именем 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 — очень полезный инструмент для поиска и поиска файлов, а также выполнения над ними операций. Мы только поцарапали верхушку айсберга. С ним по-прежнему доступно подавляющее большинство вариантов. Какими другими способами вы использовали команду «Найти»? Дайте мне знать в комментариях.
Новичок в трейдинге? Попробуйте криптотрейдинговых ботов или копи-трейдинг