Як карыстацца камандай Linux find для пошуку файлаў

У гэтым пасце мы разгледзім Linux find каманда і як шукаць і знаходзіць файлы з рознымі атрыбутамі.



Linux find Command

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 для пошуку файлаў у залежнасці ад імя, пашырэння, памеру і тыпу.