Две команды для легкого поиска файлов и каталогов в Debian

По сути, все в Linux - это файл. Но прежде чем вы сможете редактировать файл, вы должны уметь найти его в системе.

linux

О поиске файлов в Linux

В этой статье я подробно описываю две команды с полезными примерами для поиска файлов с помощью терминала. Эти две команды - команда find и команда locate. Разница между этими двумя командами заключается в том, что find выполняет поиск в реальном времени, а locate использует для поиска индексированную базу данных. Это означает, что команда locate обычно работает быстрее, но она предполагает, что искомый файл находится в её индексной базе данных, а эта база данных обычно создаётся ночью, поэтому более новые файлы не будут найдены командой locate. Но команды должны быть одинаковыми и в других дистрибутивах Linux.

Если вы хотите искать файлы по их содержимому, а не по имени файла, посмотрите на команду grep.

Поиск файлов и каталогов с помощью команды find

Поиск файла в текущем каталоге

Если вы хотите найти файл с помощью команды find, выполните на терминале одну из следующих команд.

предположим,

Это приведет к поиску файла в текущем каталоге, над которым вы работаете.

Поиск файла в другом каталоге

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

Предположим, вы хотите найти файл с именем 'test.txt' в Documents, полная команда должна выглядеть следующим образом

Поиск файлов по расширению файла

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

Предположим, вы хотите найти все текстовые файлы по пути Documents/user, полная команда должна выглядеть следующим образом.

Поиск файлов по имени

Также вы можете использовать переключатель -name, если хотите найти файл по имени.

Предположим, вы хотите найти файл с именем test1.txt в папке Documents/user. Полная команда должна выглядеть следующим образом.

Если вы хотите найти определенный файл в текущем каталоге, в котором вы работаете. Поместите . в путь, как показано в примере.

Игнорирование регистра при поиске файлов

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

Поиск файлов по типу файла, например, симлинки

Для поиска файлов определенного типа используйте опцию -type. Полная команда должна выглядеть следующим образом.

  • c обозначает тип файла, и они следующие.
  • b блок (буферизованный) специальный
  • c символьный (без буферизации) специальный
  • d каталог
  • p именованная труба
  • f обычный файл
  • l символическая ссылка
  • D дверь (Solaris)

Предположим, вы хотите найти обычные файлы в Documents/User, выполните следующую команду.

Если вы хотите искать регулярные файлы в текущем каталоге. Полная команда должна выглядеть следующим образом.

Если вы хотите искать файлы с несколькими расширениями, используйте символы c, разделенные запятыми.

Допустим, вы хотите найти все обычные пустые файлы в текущем каталоге.

Допустим, вы хотите найти все пустые каталоги в текущем каталоге, используйте опции -d и -empty в команде find следующим образом.

Поиск файлов по размеру

Если вы хотите найти файлы с определенным размером, вы можете использовать параметр -size. Вы можете использовать следующий суффикс с их точным размером.

  • c: байты
  • k: килобайты
  • M: мегабайты
  • G: гигабайты
  • b: блок 512 байт

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

Предположим, вы хотите найти все файлы в текущем каталоге, размер которых больше 50 байт или меньше 50 байт, соответственно, вы должны выполнить одну из следующих команд.

Поиск файлов по владельцу (пользователю)

Если вы хотите найти файл, принадлежащий определенному пользователю, вы можете использовать опцию -user. Синтаксис команды должен быть следующим.

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

Поиск файлов с помощью команды Locate

Вторая команда - это команда locate, которую вы можете использовать для поиска файлов и каталогов в вашей системе.

Прежде всего, вы должны установить утилиту locate на вашей машине Debian 11. Войдите в систему с правами root и выполните следующую команду в терминале. Нажмите Y на клавиатуре, когда появится запрос на подтверждение.

Дождитесь завершения операции.

Locate - это более быстрая команда, и она полагается на базу данных файловой системы. Она обновляется раз в день, но если вы хотите обновить ее вручную, выполните следующую команду в терминале с правами root.

Чтобы найти файл с помощью команды locate в текущем каталоге, выполните следующую команду в терминале.

Предположим, имя моего файла - test.txt. Полная команда должна выглядеть следующим образом.

Вы можете использовать опцию -i, чтобы игнорировать регистр имени файла.

или

Обе команды locate и find полезны для поиска файлов. Вы сами решаете, какую из команд использовать. Их можно дополнить другими командами, используя pipe, wc, sort, grep и т.д.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий