Как использовать команду Find для поиска файлов в Linux

Как использовать команду Find для поиска файлов в Linux

Бывают случаи, когда вы хотите получить доступ к определенному файлу, но не можете найти его в своей системе из-за отсутствия организации папок. К счастью, Linux предоставляет вам несколько удобных утилит, которые позволяют легко искать файлы на вашем компьютере.





Команда find - один из таких инструментов, который можно использовать для поиска файла по его имени файла, разрешениям, расширению, размеру и т. Д. В этом руководстве объясняется команда Linux Find и приводятся некоторые примеры, демонстрирующие, насколько мощна эта утилита.





Что такое команда поиска?

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





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

Как найти файлы в Linux

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



Найти синтаксис команды

Базовый синтаксис команды find:

find [path] [options] [expression]

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





find /home -type f -name '*.txt'

Имейте в виду, что перед поиском файлов в вашем хранилище вам необходимо иметь права на чтение для этого конкретного каталога.

беспроводная клавиатура с тачпадом для Mac

Искать файлы по имени

Чаще всего команда find используется для поиска файла по его имени. Чтобы найти файл по имени файла, используйте -имя флаг с командой по умолчанию.





find /home -type f -name filename.txt

Вышеупомянутая команда будет искать файл с именем filename.txt в /дом каталог. В -тип f опция сообщает системе, что мы ищем Файл .

Если вы хотите игнорировать регистр символов в имени файла, замените -имя вариант с -iname .

find /home -type f -iname FileName

Эта команда найдет файл, который имеет одно из следующих имен: имя файла, имя файла, имя файла, имя файла и т. Д.

Как и любую другую команду Linux, вы можете использовать . (точка), чтобы указать относительный путь к текущему каталогу.

find . -type f -name filename.txt

Сходным образом, / для /корень а также ~ для /дом также можно использовать.

Найти файлы по расширению

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

find /home -type f -name '*.pdf'

Эта команда отобразит список всех файлов с .pdf расширение. Обратите внимание, что вам придется избегать звездочка ( * ) персонаж с цитаты ( '' ) или обратная косая черта ( ), чтобы терминал интерпретировал его как подстановочный знак.

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

find /home -type f -not -name '*.pdf'

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

find /home - type f '*.pdf' -exec chmod -777 {} ;

Эта команда будет искать все PDF файлы в /дом каталог и измените их разрешения, чтобы каждый мог читать, писать и выполнять эти файлы.

Поиск определенных типов файлов

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

До сих пор мы использовали -тип f параметр в команде поиска. В ж означает Файл . Чтобы найти другие типы файлов в Linux, замените ж с другими зарезервированными символами.

  • ж : обычные файлы
  • d : каталоги
  • в : символические ссылки
  • c : символьные устройства
  • б : блокировать устройства
  • п : именованный канал
  • s : Розетки

Для поиска подкаталогов, присутствующих в /дом каталог:

find /home -type d

Найти файлы по размеру

В -размер Флаг позволяет вам искать файлы, которые занимают определенное место на диске. Следующие суффиксы обозначают различные размеры файлов:

  • б : Блоки по 512 байт
  • c : байты
  • в : двухбайтовые слова
  • к : Килобайт
  • M : Мегабайты
  • грамм : Гигабайты

Чтобы найти все файлы размером 1 ГБ:

find /home -type f -size 1G

Для поиска файлов размером менее 1 ГБ добавьте минус ( - ) перед указанием размера:

find /home -type f -size -1G

Точно так же используйте более ( + ) для поиска файлов размером более 1 ГБ:

find /home -type f -size +1G

Для поиска файлов в диапазоне размеров:

find /home -type f -size +1M -size -10M

Найти файлы с помощью отметок времени

Вы, возможно, уже знаете, что Linux назначает определенные временные метки к каждому файлу в вашем хранилище. Эти отметки времени содержат время модификации, время изменения и время доступа.

Чтобы найти файлы с определенным временем модификации:

find /home -type f -name '*.txt' -mtime 5

Вышеупомянутая команда распечатает все файлы, которые были изменены за последние пять дней. Точно так же вы также можете использовать -время а также -ctime для фильтрации файлов по времени доступа и времени изменения.

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

find /home -type f -name '*.txt' -mtime +5

Поиск файлов с определенными разрешениями

В -перма опция позволяет пользователям искать файлы с определенным набором разрешений.

find /home -type f -perm 777

Использовать косая черта персонаж ( / ), чтобы отобразить файл, если хотя бы одна категория имеет правильный набор предоставленных разрешений.

как перенести фотографии с iphone на macbook
find /home -type f -perm /777

Найти файлы по владельцу

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

find /home -user randomuser

Найти и удалить файлы

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

find /home -type f -name '*.pdf' -delete

Вышеупомянутая команда удалит все PDF файлы, которые присутствуют в /дом каталог.

Вы не сможете удалить непустые каталоги с помощью find. Вам придется использовать команда rm для удаления таких папок в вашей системе Linux.

Организация файлов в Linux

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

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

Делиться Делиться Твитнуть Эл. адрес 9 основных советов по управлению и организации файлов на вашем компьютере

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

Читать далее
Похожие темы
  • Linux
  • Управление файлами
  • Linux
Об авторе Дипеш Шарма(Опубликовано 79 статей)

Дипеш - младший редактор Linux в MUO. Он пишет информационные руководства по Linux, стремясь доставить удовольствие всем новичкам. Не уверен насчет фильмов, но если вы хотите поговорить о технологиях, он ваш парень. В свободное время он может читать книги, слушать разные музыкальные жанры или играть на гитаре.

Ещё от Deepesh Sharma

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться
Категория Linux