Команда финд у Линук-у се користи за претрагу датотека и директоријума у датим директоријумима на основу различитих критеријума. Ова команда је један од најмоћнијих и најчешћих услужних програма у Линуку.
Основни формат команде финд је следећи:
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
.
Команда може претраживати читав систем датотека у потрази за датотекама и директоријумима, што може одузети много времена и ресурса. Због тога је важно да будете пажљиви када користите ову команду и да се уверите да су критеријуми претраге исправно постављени како бисте избегли тражење непотребних датотека или грешака у систему.