Заметки программиста

find

Для поиска файлов в Ubuntu из командной строки наиболее распространенной и мощной командой является find.

Основной синтаксис:

find /path/to/start/search -option criteria

Распространенные примеры:

  • Найти файл по имени (с учетом регистра) в текущем каталоге:
    find . -name "filename.txt"
  • Найти файл по имени (без учета регистра) в текущем каталоге:
    find . -iname "filename.txt"
  • Найти файл по имени (с учетом регистра) во всей файловой системе (начиная с корня):
    sudo find / -name "filename.txt"

Примечание: использование sudo часто необходимо при поиске по всей файловой системе для доступа к каталогам, на которые у вас может не быть прав доступа.

  • Найти файлы, соответствующие шаблону (с использованием подстановочных знаков):
    find . -name "*.log"  # Finds all files ending with .log
find /home/user -iname "report*" # Finds files starting with "report" (case-insensitive) in /home/user
  • Найти каталоги по названию.
    find . -type d -name "my_directory"
  • Чтобы рекурсивно отобразить только свойства каталогов с именем «web», можно использовать команду find с параметром -ls, который предоставляет подробную информацию, похожую на ls -l
    find . -type d -name "web" -ls
  • найти пустые файлы.
    find . -type f -empty
  • Найти файлы по времени изменения (например, измененные за последние 7 дней):
    find . -mtime -7

Использование locate(для более быстрого поиска после обновления базы данных):

Команда locateвыполняет поиск по готовой базе данных файлов, что значительно ускоряет выполнение стандартных поисковых запросов, но её необходимо периодически обновлять. Установите locate (если он ещё не установлен).

    sudo apt update
sudo apt install locate

Обновите базу данных locate.

    sudo updatedb

Найдите файл с помощью locate.

    locate filename.txt

или для поиска без учета регистра:

    locate -i filename.txt

Ответы ИИ могут содержать ошибки.