Команда финд у Линук-у се користи за претрагу датотека и директоријума у датим директоријумима на основу различитих критеријума. Ова команда је један од најмоћнијих и најчешћих услужних програма у Линуку.
Основни формат команде финд је следећи:
find [path] [expression]где:
path је путања до директоријума у коме желите да тражите датотеке (подразумевано, претрага се врши у тренутном директоријуму и свим његовим поддиректоријумима);
expression је израз који специфицира критеријуме претраге за датотеке.
Следе неки од најчешћих критеријума за претрагу датотека који се могу користити у изразу команде за проналажење:
-name : Тражи датотеке по имену. на пример:
find /home/user -name myfile.txt -type : Потражите датотеке одређеног типа (на пример, f за обичне датотеке или d за директоријуме). на пример:
find /home/user -type f -size : Тражи датотеке по величини. на пример:
find /home/user -size +10M
-mtime : Тражи датотеке према времену последње измене. на пример:
find /home/user -mtime -7 -user анд -group : Претражујте датотеке по власнику и групи. на пример:
find /home/user -user bob -group users Можете користити Булове операторе -and , -or и -not да комбинујете више критеријума претраге у један израз.
На пример, следећа команда ће пронаћи све датотеке у /home/user директоријуму које су измењене у последњих 7 дана и веће су од 10 мегабајта:
find /home/user -type f -mtime -7 -size +10M Команда финд вам такође омогућава да извршите различите радње на пронађеним датотекама користећи опцију -exec . На пример, можете да избришете све датотеке које су измењене пре више од 30 дана користећи следећу команду:
find /home/user -type f -mtime +30 -exec rm {} ; Овде, опција -exec покреће команду rm за сваку пронађену датотеку и користи {} да замени име датотеке у команди.
Команда find је моћан алат за претраживање датотека и директоријума у Линук-у и може се користити за обављање различитих задатака везаних за управљање.
Команда find подржава многе друге опције које се могу користити за прецизније лоцирање датотека:
-iname : Тражи датотеке по имену, не разликује велика и мала слова. на пример:
find /home/user -iname myfile.txt -regex : Пронађите датотеке чија се имена подударају са датим регуларним изразом. на пример:
find /home/user -regex ".*.txt$" -maxdepth и -mindepth : ограничавају дубину претраге датотека у поддиректоријумима. на пример:
find /home/user -maxdepth 2 -type f -prune : Искључује одређене директоријуме из претраге. на пример:
find /home/user -path /home/user/excluded -prune -o -type f -print -print : Штампајте листу пронађених датотека у стандардни излаз. на пример:
find /home/user -type f -print
find такође подржава претрагу датотека према различитим атрибутима као што су дозволе, атрибути датотека, SELinux ознаке и други. Више информација о овим опцијама можете пронаћи у документацији команде find .
Команда може претраживати читав систем датотека у потрази за датотекама и директоријумима, што може одузети много времена и ресурса. Због тога је важно да будете пажљиви када користите ову команду и да се уверите да су критеријуми претраге исправно постављени како бисте избегли тражење непотребних датотека или грешака у систему.