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

В этом посте мы рассмотрим linux find команда и как искать и находить файлы с разными атрибутами.



Команда поиска в Linux

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

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


Давайте посмотрим на использование find команда с примерами:

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

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


find . -name sales.csv

Пример вывода:

./accounts/sales.csv

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

Если вы хотите найти определенный файл (ы) в каталоге, мы можем использовать:

find ./test -name testCases*

Пример вывода:

./test/testCases10.txt ./test/testCasesPassed.txt ./test/testCasesFailed.log

В приведенном выше случае мы ищем только в каталоге «./test».


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

Для поиска и поиска файлов по определенному расширению мы используем:

find . -name *.jpg

Пример вывода:

./test/results/failedTests.jpg ./test/project.jpg ./home/profile_pic.jpg ./tmp/cute-cats.jpg

Найдите файлы или каталоги с определенными именами

Чтобы найти только файлы, нам нужно использовать -f вариант:

find ./ -type f -name 'results*'

Пример вывода:


./test/results_latest.log ./test/results_archive.pdf

Чтобы найти только каталоги, нам нужно использовать -d вариант:

find ./ -type d -name 'results*'

Пример вывода:

./test/results

Найдите файлы в нескольких каталогах

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

Пример:


find ./test ./logs -name failed*.* -type f

Пример вывода:

./test/failed_tests.txt ./logs/failed_tests.log

Найти файлы, содержащие определенный текст

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

Ты можешь использовать:

find ./test -type f -exec grep -l -i 'login_scenarios' {} ;

Здесь -i опция используется для игнорирования регистра, поэтому будут найдены и Login_Scenarios, и login_scenarios.


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

Мы даже можем найти файлы разного размера. Варианты размеров:

  • c байты
  • k килобайты
  • M Мегабайт
  • G Гигабайт

Например, чтобы найти файлы с точным размером, мы используем:

find / -size 10M

А чтобы найти файлы больше определенного размера, мы используем:

find ./test -size +2M

Вышеупомянутое найдет все файлы, размер которых превышает 2 МБ, в папке ./test.

Найти и удалить определенные файлы

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

find . -type f -name 'temp*' -exec rm {} ;

Заключение

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