Главным инструментом для поиска файлов служит утилита find. Она имеет множество параметров, которые позволяют задавать различные условия.
Поиск по имени файла
find ~ -name 'article.doc'
~
домашняя папка пользователя в качестве начального пути для поиска
-name
поиск по имени файла
Так же можно делать поиск по части имени
find ~ -name 'article.*'
find ~ -name '*.doc'
У параметра name есть альтернатива iname — игнорирование регистра символов.
Поиск по дате и времени
У файлов учитывается время создания (create), доступа (access) и изменения (modification). Соответственно параметры поиска начинаются с первых букв соответствующих английских слов.
find . -amin -30
Ищем файлы в текущей папке, которые открывались менее 30 минут назад.
find . -ctime -2h
Ищем файлы в текущей папке, время создания которых отличается от текущего на 2 часа.
В единицах интервала времени можно использовать модификаторы + или —, чтобы обозначить условие больше или меньше соответственно.
Поиск по размеру
find . -size +10M
Эта команда выдаст список файлов, размер которых больше 10 мегабайт.
find . -size -10k
А эта — список файлов, размер которых меньше 10 килобайт.
Поиск по содержимому файла
Утилита find сама не осуществляет поиск по содержимому, но ее можно использовать, чтобы задать другие граничные условия поиска. А внутри файла можно найти строку с помощью утилиты grep.
Найдем файлы в домашней папке пользователя, размер которых меньше 10 килобайт и содержащих строку «hello»
find ~ -size -10k -print0 | xargs -0 grep "hello"
-print0
имена файлов будет разделены символом \0
xargs
специальная утилита, которая получает из стандартного ввода набор строк и передает их в качестве аргументов следующей утилите (в нашем случае утилите grep)
-0
строки разделены символом \0
Подробнее о параметрах
Все параметры и их значения можно узнать из документации по соответствующим утилитам
Коментарии к заметке
Спасибо — автор явно писал для людей, а не шпаргалку для себя. интересно, почему мой пк не признаёт xargs командой????….. и я очень не люблю ссылок, которые ведут не понятно куда…
List, на ваш ПК должна быть установлена Linux-совместимая операционная система, чтобы работали все команды. Я не могу подсказать вам что делать в случае с Windows.
А по мне так шпаргалка, хоть бы пример написал. И одна команда, если ее просто скопировать не работает.