logo

Пронађите команду у Линук/Уник-у са примерима

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

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

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

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

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

Услужни програм за проналажење подразумевано долази са већином Линук дистрибуције , тако да не морамо да инсталирамо никакав додатни пакет. То је једна од најважнијих и најкоришћенијих команди Линук система.

 find 

Две опције одређују како финд треба да разматра симболичке везе. Подразумевана природа никада није тражење симболичких веза. Застава, тј. , довешће проналазак до тражења симболичких веза. Застава, тј. , ће само пратити симболичке везе док наставља са аргументима командне линије. Заставице се помињу у ПОСИКС стандарду за команду финд. Основно проширење је застава, тј. , да експлицитно онемогућите следећу симболичку везу.

Најмање пут мора да антиципира израз. Команда финд може интерно да тумачи џокер знакове, а команде морају бити пажљиво цитиране да би се управљало глобирањем љуске.

Компоненте израза су изоловане границом аргумента командне линије, генерално означене као размак унутар синтаксе љуске. Разматрају се са леве на десну страну. Они могу укључивати логичке компоненте попут ИЛИ и И, као и предикате (радње и филтере). ГНУ финд садржи неколико других карактеристика које ПОСИКС не помиње.

Следећи симболи се користе за одређивање директоријума:

(.) : За име тренутног директоријума

(/) : За основни директоријум

Кратка историја команде Финд

Команда финд се појавила у верзији 5 Уник-а као елемент Програмер'с Воркбенцх пројекат и прецизирао је Дицк Хаигхт са цпио, који су развијени да се користе заједно.

Првобитно је ГНУ имплементација команде финд специфицирана помоћу Ериц Децкер . Касније га је развио Дејвид Мекензи, Тим Вуд , и Јаи Плетт . Такође, команда финд је портована на ИБМ и ОС.

беллфорд алгоритам

Предикати

Широко коришћени примарни су:

    - образац имена:Проверава да ли је име датотеке исто као дато схелл-глоб образац или не.-тип типа:Проверава да ли је датотека предвиђеног типа.-принт:Увек даје праву вредност. Штампа тренутно име датотеке и нови ред у стдоут.-принт0:Увек даје праву вредност. Штампа тренутно име датотеке и нулти знак у стдоут. ПОСИКС-у није потребан.-екец програм [аргумент ...];:Увек даје праву вредност. Извршава програм са фиксним датим аргументима и тренутном путањом датотеке.-екец програм [аргумент ...] { } +:Увек даје праву вредност. Извршава програм са фиксним датим аргументима и што више путања. За скоро сваку имплементацију, друга појављивања {} значе додатне копије датог имена (аспект није потребан ПОСИКС-у).-ок програм [аргумент ...];:Исто је као -екец, али ће вратити нетачно или тачно ако програм даје 0.

Пронађите подразумеване вредности за имплементацију -принт у случају да су услови тачни ако израз не користи ништа од -ок, -екец, -принт или -принт0.

Оператери

Оператори побољшавају изразе команде финд. Помињу се по опадајућем приоритету:

    (израз):Овај оператор може форсирати предност.! израз:Ако екпр враћа нетачно, враћа тачно.
  • екпр1 екпр2 (или екпр1 -а екпр2 : И. израз2 се не процењује ако је израз1 нетачан.
  • експр1 -о експр2 : ИЛИ. израз2 се не вреднује ако је израз1 тачан.

Примери команде финд

Погледајмо следеће примере команде финд:

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

Можемо да претражимо све датотеке које се завршавају екстензијом „.ткт“. Да бисте то урадили, извршите следећу команду:

 find . -name '*.txt' 

Горња команда ће приказати све текстуалне датотеке из тренутног радног директоријума. Размотрите доњи излаз:

Линук Финд

Из горњег излаза, све датотеке које имају екстензију '.ткт' су наведене са командом финд.

Проналажење датотека по типу

Параметар '-типе' се користи за одређивање типа датотеке.

фореацх лооп типесцрипт

Неки од типова датотека су следећи:

  • ф: обична датотека
  • д: именик
  • л: симболичке везе
  • в: знаковни уређаји
  • б: блок уређаји

Размотрите доњу команду:

 find . -type d -name '*.bak' 

Горња команда ће приказати све директоријуме који имају екстензију '.бак'. Размотрите доњи излаз:

Линук Финд

Из горњег излаза, команда 'финд . -типе д -наме '*.бак' приказује све директоријуме који се завршавају са '.бак'.

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

Параметар '-невер' помаже у претраживању датотека које су новије од поменуте датотеке. Размотрите доњу команду:

 find . -newer msg.txt 

Горња команда ће приказати све датотеке које су новије од 'мсг.ткт' из тренутног радног директоријума. Размотрите доњи излаз:

Линук Финд

Из горњег излаза, све приказане датотеке су новије од датотеке 'мсг.ткт'.

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

Опција '-делете' се користи за брисање одређене датотеке. Морамо бити веома опрезни док користимо ову команду јер не постоји опција поништавања ако се једном изврши. Размотрите доњу команду:

 find . -name Demo.txt -delete 

Горња команда ће избрисати датотеку 'Демо.ткт' из тренутног радног директоријума. Размотрите доњи излаз:

Линук Финд

Пронађите именик

Опција ' типе -д' се користи за проналажење директоријума. Размотрите доњу команду:

 find . type -depth -name Newdirectory 

Горња команда ће пронаћи локацију „Нови директоријум“. Размотрите доњи излаз:

Линук Финд

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

Опција '-мтиме', праћена бројем дана, користи се за проналажење датотека модификовањем. Број дана може бити позитиван или негативан. Негативна вредност ће се користити за мање од -1 се користи за последњи дан, и слично, +1 ће пронаћи датотеку за пре више од једног дана. Размотрите доњу команду:

 find ./Newdirectory -mtime -1 

Горња команда ће пронаћи датотеке које су измењене током последњег дана. Размотрите доњи излаз:

палиндром у Јави
Линук Финд

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

Опција '-перм' се користи за проналажење датотека уз дозволу. Извршите команду финд са опцијом '-перм' и проследите потребну вредност. Размотрите доњу команду:

 find ./ -perm 777 

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

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

Да бисмо пронашли и заменили датотеке, морамо комбиновати команду финд са командом сед. Да бисте радили са датотекама, користите опцију '-екец' са командом финд. Размотрите доњу команду:

 find ./Newdirectory -type f -exec sed -i 's/find/replace/g' {} ; 

из горње команде, наведена појава ће бити замењена. Размотрите доњи излаз:

Линук Финд

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

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

 find ./Newdirectory -type f -name '*.txt' -exec grep 'demo' {} ; 

Горња команда ће пронаћи редове који садрже текст 'демо' из свих текстуалних датотека у директоријуму 'Нови директоријум'. Размотрите доњи излаз:

Линук Финд

Из горњег излаза, можемо видети да је приказан текст 'демо'.

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

 $ find / -name file1 -type f -print 

Горња команда проналази све директоријуме за обичну датотеку чији је наслов филе1 и штампа је на екрану. Генерално, није добра идеја тражити датотеке на овај начин. Може потрајати доста времена. Дакле, најбоље је поменути именик. Неколико оперативних система може монтирати системе датотека (динамичке) који нису погодни за команду финд. Компликованији називи датотека који садрже карактере јединствене за шкољку могу захтевати да буду затворени у једноструким наводницима.