Как искать файлы в Linux?

Как искать файлы в Linux?

Знаете ли вы хороший способ найти файл или контент по имени рекурсивно, похожий на функцию поиска ms-windows в Linux? Я могу find . | grep test.htmlподозревать, что это не лучший способ. Спасибо за любой ответ.

Например, запуск find . | grep terms.htmlдает ожидаемый результат, но locate terms.htmlне приводит к нему, хотя locate обновляет базу данных. Возможно, это связано с тем, что файл находится на USB-накопителе?

решение1

Команда find, вот такая

 find . -iname '*hellofiles*'

Вы говорите, что find ·location· -iname означает, что регистр не чувствителен, а в '' - это регулярное выражение, если хотите.

find /home/user -iname '*zip' найдет все zip-файлы в /home/user

Если вам нужен более быстрый поиск, вы можете использовать locate, есть утилита, которая регулярно сканирует диск, например, каждую неделю или каждый день, в зависимости от настроек.

locate myfile

и он будет искать в базе данных, видел ли updatedb где-нибудь файл myfile.

решение2

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

find . -iname '*.txt'

См. также раздел примеров на связанной странице руководства.

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

решение3

В случае пакетов: dpkg -L имя_пакета

или если вы знаете, что он находится в определенной папке, добавьте использование grep, например:

dpkg -L имя_пакета | grep имя_папки

Например, вы только что установили Chromium и вам нужно узнать, где находится корзина.

dpkg -L chromium-браузер | grep bin

решение4

find . -name test.htmlили вы также можете использовать подстановочные знаки:find . -name \*test.html

Связанный контент