40 најбољих примера команде Финд у Линуку

Линук команда финд је моћан алат који омогућава администраторима система да лоцирају и управљају датотекама и директоријумима на основу широког спектра критеријума претраге. Може да пронађе директоријуме и датотеке по њиховом имену, њиховом типу или проширењу, величини, дозволама итд.

Поред лоцирања датотека и директоријума, комбиновање команде финд са другима омогућава вам да предузмете акцију у вези са резултатима. Додавање опције -екец омогућава администраторима система да покрећу спољне команде и извршавају радње као што су копирање, премештање, брисање или промена дозвола за датотеке које одговарају наведеним критеријумима као што су величина, име итд.

У овом чланку ћемо почети објашњавањем основних Линук команди финд са примерима. Ово ће вам показати како да пронађете датотеке и директоријуме. Затим ћемо вам показати како да користите опцију -екец да бисте деловали на датотеке или директоријуме на основу њихове величине, дозвола итд.

Општа синтакса за команду финд је

find {path} {name -of-file or dir-to-search} {action-to-take}

Где,

  • путања одређује директоријум.
  • наме-оф филе или дир-то-сеарцх : Назив датотеке или директоријума који треба тражити
  • радња коју треба предузети: као што је копирање, брисање, премештање итд.

У овом водичу ћемо објаснити како да лоцирате датотеке и директоријуме који одговарају наведеним обрасцима. Такође ћемо видети како да извршимо радње над датотекама или директоријумима које проналази команда финд. Водич је заснован на Убунту-у, али је применљив на већину дистрибуција и верзија Линука.

Преглед садржаја

Пронађите датотеке и директоријуме

Пронађите одређене датотеке по имену или екстензији

Да бисте потражили одређену датотеку, покрените следећу команду из корена (/). Команда садржи тачно име датотеке коју тражите.

find . -name file22.txt

Излаз

./test/file22.txt
./sales/file22.txt

Имајте на уму да резултати укључују путању. Ово је важно ако не знате директоријум у коме се датотека налази или када се налази на више места.

Такође можете тражити датотеку у другом директоријуму док сте још увек на тренутној локацији. У овом случају, потребно је да наведете путању до директоријума у ​​коме желите да претражујете.

find ./test -name file22.txt

Тражење одређених датотека у другом директоријуму

У нашем случају, потражићемо све оне који почињу са словима у директоријуму за тестирање.

find ./test -name file*

Излаз

./test/file22.txt
./test/file30.doc
./test/file1.txt
./test/file5,doc

Потражите датотеке по екстензијама

Да бисте пронашли датотеку у Линуку са одређеном екстензијом, додајте је у команду.

find . -name *.txt

Излаз

./test/subtest/subfil.txt
./test/file22.txt
./test/file1.txt
./home1/files32.txt
./home2/file22.txt
./qa/tags.txt

Пронађите датотеке и директоријуме по имену

Користите наредбу испод да потражите датотеке и директоријуме који почињу словима ка. У нашем рачунару имамо датотеке катрее.ткт и ка.ткт, као и директоријум под именом ка.

  Научите АИ БЕСПЛАТНО са ових 9 курсева да бисте започели своју каријеру👨‍💻

Ако покренемо команду;

find ./ -name "qa*"

Враћа следећи излаз

./test/qatree.pdf
./test/qa.txt
./home/qa

Команда враћа и датотеке и директоријуме који одговарају критеријумима претраге. Да бисте пронашли само датотеке или директоријуме, ово морате да наведете у команди.

Пронађите само датотеке или директоријуме

Само за датотеке користите прекидач типа ф.

Само датотеке

find ./ -type f -name "qa*"

Излаз

./test/qatree.pdf
./test/qa.txt

Само именици

Додајте опцију типа д да бисте лоцирали само директоријуме.

find ./ -type d -name "qa*"

Излаз

./home/qa

Наредба проналажења не разликује велика и мала слова

Све претраге са прекидачем -наме су осетљиве на велика и мала слова и неће дати резултате великим словима. Да бисте добили све случајеве, користите опцију -инаме.

find ./ -iname "qa*"

Излаз

./test/qatree.pdf
./test/qa.txt
./test/QAtest.txt
./home/qa

Потражите датотеку из више директоријума

Да бисте пронашли датотеке у различитим директоријумима, додајте њихове путање у команду. У нашем случају ћемо проверити у тестним и нумеричким директоријумима.

find ./test ./numeric -name file22.txt -type f

Излаз

./test/file22.txt
/root/numeric/file22.txt

Пронађите више датотека са различитим екстензијама из свих директоријума

Можете користити команду финд да бисте лоцирали више датотека које деле различите екстензије као што су *.доц, *.ткт *.пдф, итд. Ово се може урадити одвојено, једно по једно проширење, или користећи само једну команду која укључује све жељене екстензије.

наћи . -типе ф ( -наме “*.ткт” -о -наме “*.пдф” -о -наме “*.доц” )

излаз

./test/subtest/subfil.txt
./test/qatree.pdf
./test/file22.txt
./test/qa.txt
./test/file30.doc
./books/acro.pdf
./data1/FILE22.txt
./docs/files32.txt

Пронађите датотеке које садрже одређени текст

Понекад желите да приступите датотеци која садржи одређени текст, али не можете да се сетите њеног назива датотеке или локације. Ова команда вам омогућава да пронађете све датотеке које садрже ваш циљни текст.

Да бисте потражили све датотеке које садрже реч хиперконвергенција”, користите;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Излаз

/root/numeric/hci
/root/HCIP

Опција –и омогућава команди да игнорише мала слова и проналази текст без обзира да ли је написан великим или не, тј. хиперконвергенција, хиперконвергенција итд.

Да бисте потражили датотеке у одређеном директоријуму, једноставно их додајте у команду

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Излаз

./numeric/hci

Истражите више примера команди греп.

Пронађите датотеке и директоријуме на основу величине

Можете пронаћи све датотеке или директоријуме који су мањи, једнаки или већи од одређене величине, унутар одређеног опсега или празни. Користите одговарајући формат величине у зависности од врсте датотека или директоријума које тражите.

Опције величине укључују;

ц – бајтови

к – килобајти

М – мегабајти

Г – Гигабајти

Пронађите датотеке одређене величине – једнаке 30 МБ

За претрагу пронађите све датотеке од 30 МБ

find / -size 30M

Пронађите датотеке веће од одређене величине

find -size +2M

Излаз

. /Downloads/ubuntu18043.iso 
./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Пронађите датотеке мање од 10МБ у тренутном директоријуму

find . -type f -size -10M

Пронађите датотеке величине између 100-200МБ

Када тражите датотеке унутар одређеног опсега, на пример између 100 и 200 МБ

find / -size +100M -size -200M

Потражите директоријуме веће од 20 кб

финд / -типе д -сизе +20к

Пронађите празне датотеке и директоријуме.

Фајлови

пронађи ./ -тип ф -величина 0

или

find ./ -type f –empty

Именици

find ./ -type d –empty

Пронађите датотеке према старости или времену измене

Пронађите датотеке старије од н дана

find /path/ -type f -name '*.txt' -mtime +8

-мтиме +8 ће тражити ткт датотеке које су старије од 8 дана.

По датуму измене

Ово ће тражити датотеке измењене у последњих 17 сати

find . -mtime -17 -type f 

Тражи директоријуме измењене у последњих 10 дана

find . -mtime -10 -type d 

Пронађите датотеке на основу приступа или модификације

Пронађите датотеке на основу датума или времена приступа. Ово вам омогућава да видите датотеке којима се приступило или којима се није приступило у одређеном периоду.

Да видите датотеке којима није приступљено у последњих 10 дана у матичном директоријуму.

find /home -atime +10

Датотекама је приступљено пре тачно 10 дана

find /home -atime 10

Приступљено у последњих 10 дана

find /home -atime -10

Пронађите датотеке измењене у последњих н дана

Такође можете потражити датотеке у /хоме директоријуму измењене у последњих 10 дана користећи команду;

find /home -mtime -10 

Пронађите датотеке измењене у одређеном периоду.

На пример, све датотеке измењене између 6 и 15 дана у матичном директоријуму.

find /home -type f -mtime +6 -mtime -15

Датотеке и директоријуми којима је приступљено у последњих 10 минута

Да бисте пронашли датотеке којима је приступљено у последњих 10 минута, користите опцију -амин.

find . -amin -10 -type f

Излаз

./.bash_history
./[email protected]:~#

Директоријумима је приступљено у последњих 10 минута

find . -amin -10 -type d

Пронађите датотеке које одговарају одређеним дозволама

Синтакса

$ find -perm mode

Где је режим дозвола која је или нумеричка, као што су 644, 655, 700, 777, итд., или слова као што су у=к, а=р+к, итд.

  10 фактора за преговарање осим плате на интервјуу за посао

Режим можете одредити на следећа три различита начина.

  • Без префикса када желите да пронађете датотеке са тачно наведеним дозволама.
  • Са „-“ за датотеке са најмање наведеном дозволом. Ово враћа датотеке са наведеним, као и додатним вишим дозволама.
  • Коришћење „/“ захтева навођење власника или групе са дозволом за датотеку.
  • Пронађите датотеке са дозволом 777

    find -perm 777

    Излаз

    ./file1

    Пронађите датотеке са најмање 766
    нађи -перм -766

    Излаз

    ./file2
    ./file1

    Команда тражи све датотеке у којима је

    • Власник датотеке има дозволе за читање/уписивање/извршавање.
    • Група има дозволе за читање/писање
    • Други имају дозволу за читање/писање

    Као такав, враћа две датотеке које испуњавају овај критеријум – филе1 и филе2. Датотеке не морају да имају тачне дозволе од 766 и могу имати додатне докле год, али морају имати најмање наведене.

    Пронађите датотеке које може да упише власник

    Сада ћемо користити „/“ да тражимо датотеке на које може да упише било њихов власник, група или други.

    find -perm /222
    .
    ./file2
    ./file3
    ./file1

    Горенаведено тражи датотеке у које може писати било њихов власник или група.
    Ово враћа датотеке у које се може писати било који, али не нужно и један и други. Да бисте видели датотеке, где обе имају дозволе за писање, користите префикс –.

    find -perm -220

    Излаз

    ./file2
    ./file1

    Пронађите датотеке у власништву корисника

    Пронађите све датотеке у власништву Јацка

    find /home -user jack

    Излаз

    /home/jack
    /home/jack/examples.desktop
    /home/jack/.gnupg
    /home/jack/.gnupg/private-keys-v1.d
    /home/jack/ans.cgi

    Пронађите одређене датотеке у власништву корисника

    Пронађите све текстуалне датотеке у власништву Џека

    find /home -user jack -iname "*.txt"

    Излаз

    /home/jack/docs/file32.txt

    Пронађите и наведите датотеке и директоријуме заједно са њиховим дозволама

    find -name "*.conf" | ls -l

    Излаз

    total 120
    drwxr-xr-x 2 root root 4096 Dec 31 13:19 backup2
    drwxr-xr-x 2 root root 4096 Jan 4 11:57 Desktop
    drwxr-xr-x 2 root root 4096 Dec 31 11:50 Documents
    drwxr-xr-x 2 root root 4096 Dec 31 12:27 Downloads
    -rw-r--r-- 1 root root 0 Jan 4 12:02 file22.doc
    drwxr-xr-x 2 root root 4096 Jan 4 12:14 file23
    -rw-r--r-- 1 root root 0 Jan 4 12:23 file23.txt

    Пронађите и поступите на основу резултата

    У овом одељку ћемо погледати како можете да делујете на датотеке које одговарају шаблону наведеном у команди финд.

    Пронађите датотеке и промените дозволе

    Пронађите и промените дозволе одређених типова датотека. У нашем случају, радићемо са ПХП датотекама са различитим дозволама као што је приказано у наставку.

    [email protected]:~/ver$ ls -la
    
    total 8
    drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
    drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 base.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 qust.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 vary.php

    Сада ћемо потражити све ПХП датотеке (горе) и заменити њихове дозволе са 755

    find ver -name "*.php" -type f -exec chmod 755 {} ;

    Команда тражи ПХП датотеке у директоријуму вер, а затим поставља њихову дозволу на 755 (рвкр-кр-к)

    Резултати

    [email protected]:~/ver$ ls -la
    total 8
    drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
    drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 base.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 qust.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 vary.php

    Пронађите и промените дозволе за датотеке и директоријуме

    Пронађите датотеке са 644 дозволе и промените их тако да имају 655 дозвола

    find . -type f -perm 644 -exec chmod 655 {} ;

    Такође можете потражити директоријуме са 644 дозволама и заменити их са 755.

    find . -type d -perm 644

    Излаз

    ./docs   

    Директоријум докумената има 644 дозволе

    drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

    Да бисмо га поставили на 755, покрећемо

    find . -type d -perm 644 -exec chmod 755 {} ;

    Сада можемо поново да проверимо шта тачно 755

    find . -type d -perm 755

    Излаз
    .
    ./доцс

      Како направити листу за репродукцију на ИоуТубе-у

    Одозго можемо видети да директоријуми роот и документи имају 755 дозвола.

    Лс –ла команда даје следеће детаље

    drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

    Пронађите и копирајте датотеке или директоријуме

    Пронађите и копирајте одређену датотеку у директоријум

    Команда испод ће пронаћи датотеку филе22.ткт и копирати је у директоријум ~/тмп/имагес.

    find -iname file22.txt -exec cp {} ~/tmp/images ;

    Пронађите и копирајте једну врсту датотека у директоријум

    Да бисте пронашли датотеке као што су слике са екстензијом јпг у тренутном директоријуму и копирали их на другу локацију као што је фолдер са сликама, користите;

    find -iname '*.jpg' -exec cp {} ~/tmp/images ;

    Ово ће пронаћи и копирати све јпг датотеке у фасциклу ~/тмп/имагес.

    Пронађите и копирајте једну датотеку у више директоријума

    Пронађите и копирајте један у више директоријума.

    find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

    Ово ће пронаћи датотеку хци и копирати је у три директоријума /тмп/дир1/ /тмп/дир2/ и $ХОМЕ/3/

    Пронађите и преместите датотеке у други директоријум

    Да бисте преместили познату датотеку из директоријума у ​​други. Да бисте преместили датотеку универсал.пхп;

    find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

    Претражујте и премештајте датотеке са одређеном екстензијом у другу фасциклу

    find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

    Пронађите одређене датотеке и пређите у одређену другу фасциклу

    find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

    Команда тражи све датотеке чији називи почињу са уни и имају било коју екстензију. Затим их премешта у директоријум /унифилес/

    Пронађите и преместите датотеке на основу старости

    Пронађите и преместите датотеке старије од наведених дана на другу локацију као што је архива.

    find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

    Ово ће тражити пдф датотеке старије од 20 дана и преместити их у директоријум бацкуп1.

    Пронађите и избришите датотеке и директоријуме

    Синтакса за проналажење и уклањање датотека или директоријума у ​​тренутном директоријуму је

    наћи . -типе ф -наме “датотека за брисање” -екец рм -ф {} ; да обришете само датотеке или

    наћи . -типе д -наме “дир-то-делете” -екец рм -рф {} ; да обришете само директоријуме

    Пронађите и избришите само одређене датотеке

    Да бисте пронашли и избрисали датотеке које почињу са тил, користите;

    find . -type f -name "til*" -exec rm {} ; 

    Да бисте пронашли и избрисали директоријуме који почињу са тил

    find . -type d -name "til*" -exec rm {} ;

    Уклоните и датотеке и директоријуме

    find . -name "til*" -exec rm -rf {} ; 

    Ово ће уклонити и датотеке и директоријуме који почињу словима тил.

    Избриши проширењем

    Испод је како можете да пронађете и избришете све ткт датотеке у тренутном директоријуму. Замените ткт другом екстензијом као што је бак, пдф или било која друга коју желите да уклоните.

    find . -type f -name "*.txt" -exec rm -f {} ;

    У случају да желите да вас систем затражи да потврдите пре брисања сваке датотеке, додајте опцију -и као у наставку.

    find . -type f -name "*.txt" -exec rm -i {} ;

    Излаз

    rm: remove regular empty file './File22.txt'? y
    rm: remove regular empty file './file22.txt'? y
    rm: remove regular empty file './file23.txt'?

    Подразумевано, -рм неће уклонити директоријуме и потребно је да користите опцију –р да бисте обезбедили рекурзивно уклањање. Ово осигурава брисање празних директоријума и оних који садрже датотеке. Опција -ф присиљава уклањање и користи се и за датотеке и за директоријуме.

    Пронађите и избришите датотеке старије од н дана

    Пронађите и избришите датотеке резервне копије старије од 20 дана из тренутног директоријума.

    find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

    Ово ће избрисати све .бак датотеке старије од 20 дана.

    Пронађите и избришите само директоријуме

    Да бисте избрисали директоријум под називом дир22

    find . -type d -name dir22 -exec rm -rf {} ;

    Уверите се да се подударате са великим словима имена директоријума или користите опцију -инаме.

    find . -type d -iname Dir22 -exec rm -rf {} ;

    Уклања и Дир22 и дир22

    Да бисте потврдили пре брисања, користите опцију -и.

    find . -type d -iname Dir22 -exec rm -rf -i {} ;

    Излаз
    рм: уклонити директоријум ‘./Дир22’? н
    рм: уклонити директоријум ‘./дир22’? и

    У нашем случају, откуцали смо н за директоријум Дир22 који неће бити обрисан и и за дир22 који ће сада бити уклоњен.

    Пронађите и уклоните празне датотеке

    Можете користити било коју од следећих команди да бисте лоцирали празне датотеке и аутоматски их избрисали.

    find ./ -type f -size 0 -exec rm -f {} ;

    или
    финд ./ -типе ф -сизе 0 | каргс рм -ф
    или
    наћи ./ -тип ф -величина 0 –брисати

    Пронађите и уклоните празне директоријуме

    Да бисмо уклонили празне директоријуме, користићемо опцију д.

    find ./ -type d -empty -exec rmdir {} ;

    Друга алтернатива је да користите делете уместо ремове.

    find ./ -type d -empty -delete

    Имајте на уму да брисање системских или критичних датотека са вашег рачунара може оштетити оперативни систем или апликације или довести до губитка важних података.

    Да бисте избегли случајна брисања, најбоље је да користите кориснички налог који није роот. Такође, уверите се да бришете праве датотеке које нису корисне и да имате резервну копију свих датотека са подацима за сваки случај.

    Шта је следеће?

    Само напред и испробајте горње Линук команде за проналажење у вашој лабораторији или НЕПРОИЗВОДНОМ окружењу. Погледајте да ли можете да користите неке да аутоматизујете чишћење система датотека помоћу Цронтаба. А да бисте савладали Линук, погледајте ово онлајн курс.