Линук ФИНД команда са примерима

Да ли знате колико датотека има у новој инсталацији Линук-(Linux) а ? Ако користите ПопОС! Линук дистрибуција(Linux distribution) као пример, постоји преко 31.000 фајлова. То је пре него што почнете да креирате било какве документе, чувате музику, преузимате ПДФ(PDFs) -ове или организујете слике.

Због тога, проналажење праве датотеке или фасцикле у Линуку(Linux) када вам затреба постаје изазов. У овом чланку ћете научити како да користите Линук(Linux FIND) команду ФИНД, а ми ћемо вам дати све примере које можемо.

Синтакса команде Линук ФИНД(Linux FIND Command Syntax)

Синтакса се односи на то како се састављају речи или команде. Баш(Just) као што нормална реченица може постати бесмислица само мешањем речи, команде могу пропасти ако се не користе у одговарајућој синтакси.

пронађи [путања] [услови] [радње](find [path] [conditions] [actions])

Ево шта то значи:

финд(find ) – покреће услужни програм Финд(Find) у Линуку(Linux)

пут(path ) – где тражити

услови(conditions ) – аргументи које желите да примените на претрагу

акције(actions ) – шта желите да урадите са резултатима

Једноставан пример који користи сва три изгледа овако:

наћи . -наме филе-сампле.ртф -принт(find . -name file-sample.rtf -print)

Као што сте претпоставили, ово ће пронаћи име датотеке филе-сампле.ртф(file-sample.rtf)

Путања тачке ( . ) говори финд да тражи тренутни директоријум и све директоријуме унутар њега. 

Услов -наме(-name ) говори финд да добије датотеку са тим специфичним именом.

Акција -принт(-print ) говори ФИНД да прикаже резултате на екрану.

Тачка и -принт су подразумеване вредности за команду финд. Тако да ће и даље радити исту ствар ако их не користите. Дакле, финд -наме филе-сампле.ртф(find -name file-sample.rtf ) ће вам дати исте резултате.

Линук ПРОНАЂИ У другом директоријуму(Linux FIND In Another Directory)

Можете претраживати у директоријуму различитом од оног у коме се налазите. Само(Just) унесите путању до директоријума после ФИНД(FIND) . Ако сте у корену и знате да се датотека налази негде у home/user директоријуму, користили бисте:

find home/user -name file-sample.rtf

То је и даље рекурзивна претрага, тако да ће проћи кроз сваки директоријум под усер(user) .

Линук ФИНД Претражи више директоријума(Linux FIND Search Multiple Directories)

Ако желите да претражујете у неколико директоријума одједном, само их наведите у команди, одвојене размаком.

find /lib /var /bin -name file-sample.rtf

Линук ФИНД без рекурзије или ограничења рекурзије(Linux FIND with No Recursion or Limiting Recursion)

Ако користите горњу команду ФИНД(FIND) на основном нивоу, она би прегледала сваки директоријум на систему. Дакле, ако желите да се држите само тренутног директоријума, користите опцију -макдептх(-maxdepth ) . Број после -макдептх говори Нађи колико дубоко треба ићи пре заустављања. 

Коришћење -макдептх 1(-maxdepth 1 ) значи само овај директоријум. 

финд -наме филе-сампле.ртф -макдептх 1(find -name file-sample.rtf -maxdepth 1)

Коришћење -макдептх 2(-maxdepth 2 ) или већег броја значи ићи толико нивоа дубље.

финд -макдептх 5 -наме филе-сампле.ртф(find -maxdepth 5 -name file-sample.rtf)

Пример замене за Линук ФИНД(Linux FIND Wildcard Example)

Команда ФИНД(FIND) користи звездицу ( * ) као џокер знак. Користите га за било који део имена за који нисте сигурни. Може се користити више пута у називу. Без типа датотеке као дела назива датотеке, резултати ће такође укључивати директоријуме који се подударају.

find home/user -name file*sample*

Пример за Линук ФИНД би Типе(Linux FIND by Type Example)

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

ф – фајл

д – именик

б – блок уређај

в – карактерни уређај

л – симболичка веза

с – утичница

find home/user -name file*sample* -type d

Пример за Линук ФИНД који не разликује велика и мала слова(Linux FIND Case Insensitive Example)

За разлику од Виндовс(Windows) -а , Линук(Linux) брине о томе да ли је слово велико или мало. Дакле, ако желите да тражи и Филе-Сампле.ртф(File-Sample.rtf) и филе-сампле.ртф, користите опцију -инаме(-iname ) .

find home/user -iname File-Sample.rtf

Пример Линук ФИНД Неколико датотека(Linux FIND Several Files Example)

Рецимо да желите да пронађете .ртф и .хтмл верзије датотеке. То се може урадити једном командом помоћу (-o) (или) оператора. У неким дистрибуцијама, можда ћете морати да ставите имена унутар заграда, на пример ( -наме филе-сампле.ртф -о -наме филе-сампле.хтмл)(( -name file-sample.rtf -o -name file-sample.html ))

find home/user -name file-sample.rtf -o -name file-sample.html

Линук ПРОНАЂИ датотеке које се не подударају са именом(Linux FIND Files That Don’t Match a Name)

Можда знате да постоји .хтмл(.html) верзија датотеке, али не ако постоје и друге. Можете филтрирати .хтмл(.html) верзију из претраге користећи опцију -нот (-not ).

find home/user -name file-sample* -not -name *.html

Линук ФИНД без резултата грешке(Linux FIND Without Error Results)

У примеру проналажења без рекурзије, приметите да је наведен сваки директоријум у коме није могао да претражи и тачан резултат. То нервира. Хајде да спречимо да приказује све оне директоријуме „ Дозвола(Permission) одбијена“. Комбинујте га са другом командом Линук терминала(Linux terminal command) , греп. Такође можете да користите Финд(Find) са греп да пронађете датотеке са одређеним речима у њима(find files with specific words in them) .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

Хајде да разложимо 2>&1 .

2 – представља стдерр(stderr ) што је скраћеница за стандардне излазне грешке. 

1 – представља стандардни излаз(stdout) који је скраћеница за стандардни излаз

> – значи преусмерити било који излаз лево од њега на оно што је десно од њега.

& – значи саставити.

Дакле, 2>&1 значи узети стандардне грешке и преусмерити их, а затим их ставити заједно са стандардним излазом у један излаз.

Сада погледајмо | grep -v “Permission denied” .

| (назива се цев) – каже Линук-(Linux) у да пренесе резултате свега што је лево од њега ономе што му је десно. Уноси се у команду греп.

греп(grep) – је услужни програм за претрагу текста. 

(-v ) – говори грепу да тражи било шта што се не подудара са текстом лево од -в. У овом случају, говори греп-у да пронађе само све што не садржи текст или стринг, „ Дозвола(Permission) одбијена“. Дакле, греп ће вам показати само резултате које тражите и све грешке које се не подударају са „ Дозвола(Permission) одбијена“.

Пример за Линук ФИНД би Пермиссионс(Linux FIND by Permissions Example)

Да бисте ово добро користили, морате научити Линук дозволе(learn Linux permissions)

Све датотеке примера имају дозволе 664, осим једне са дозволама 775. Користите опцију -перм(-perm ) да бисте је пронашли.

find Documents/ -name file-sample* -type f -perm 775

Пример за Линук ПРОНАЂИ према величини(Linux FIND by Size Example)

Проналажење датотека по величини је згодно за добијање великих датотека које испуњавају ваш чврсти диск. Користите опцију -сизе, жељену величину и један од следећих суфикса. Ако се не користи суфикс, -сизе подразумевано је б(b) . Да бисте пронашли датотеке једнаке и веће од одређене величине, ставите знак плус (+) испред величине.

М – мегабајти

Г – Гигабајти

к – килобајти

б – блокови (512 бајтова – подразумевано)

ц – бајтови

в – речи (два бајта заједно)

find -size +500k

Линук ФИНД од власника(Linux FIND by Owner)

Постоје два начина да пронађете датотеке по власнику. Један је по корисничком имену власника, а други по корисничкој групи. Да бисте пронашли по корисничком имену, користите опцију -усер(-user) , након чега следи корисничко име. Да бисте пронашли по групи корисника, користите -гроуп(-group ) праћено именом групе.

финд -усер гроупнаме(find -user groupname ) или финд -усер усернаме(find -user username)

Линук ФИНД Филес по примеру последње измене(Linux FIND Files by Last Modified Example)

Да бисте пронашли датотеке које су измењене или уређене у последњих Кс дана, користите -мтиме(-mtime) праћено бројем. Стављањем знака минус ( ) испред броја биће све измењено у току толико дана раније. Знак плус ( + ) значи у року од толико дана пре сада. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Да бисте пронашли по последњој измени у минутама, користите опцију -ммин након чега следи број минута. Користите + и – као горе.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Линук ФИНД Филес по примеру последњег приступа(Linux FIND Files by Last Accessed TIme Example)

Опција која се користи за проналажење датотека на основу тога када су последњи пут отворене је -атиме(-atime ) за дане и -амин(-amin ) за минуте. Пратите га са бројем дана или минута за повратак и користите знак + и – као већи од и мањи од.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Комбинујте ФИНД са другим Линук командама(Combine FIND with Other Linux Commands)

Горе је наведен један пример коришћења финд са командом греп, а можете га користити са многим другим. Можете видети да коришћење финд и других команди може бити веома моћно и уштедети време. Замислите(Imagine) да морате да избришете гомилу одређене врсте датотеке. Уместо да претражујете у експлореру датотека, само направите праву команду и то је готово за секунде. Како ћете сада користити команду финд?



About the author

Ја сам веб програмер са преко 10 година искуства у раду са прегледачима Фирефок и Гоогле Доцс. Специјалиста сам за креирање једноставних, али моћних онлајн апликација, и развио сам веб-базирана решења за мала предузећа и велике организације. Моја база клијената укључује нека од највећих имена у пословању, укључујући ФедЕк, Цоца Цола и Маци'с. Моје вештине као програмера чине ме идеалним кандидатом за било који пројекат који треба да се заврши брзо и ефикасно – од развоја прилагођених веб локација до креирања робусних маркетиншких кампања путем е-поште.



Related posts