A find parancs a Linuxban arra szolgál, hogy különböző kritériumok alapján fájlokat és könyvtárakat keressen megadott könyvtárakban. Ez a parancs az egyik legerősebb és legelterjedtebb segédprogram a Linuxban.
A find parancs alapvető formátuma a következő:
find [path] [expression]
ahol:
path annak a könyvtárnak az elérési útvonala, amelyben a fájlokat keresni kell (alapértelmezés szerint a find az aktuális könyvtárban és annak összes alkönyvtárában keres);
expression egy kifejezés, amely meghatározza a fájlok keresésének feltételeit.
Az alábbiakban néhány olyan leggyakoribb fájlkeresési kritériumot mutatunk be, amelyek a find parancs kifejezésében használhatók:
-name: fájlok keresése név alapján. Például:
find /home/user -name myfile.txt
-type: egy adott típusú fájlok keresése (például f a normál fájlok esetében vagy d a könyvtárak esetében). Például:
find /home/user -type f
-size: fájlok keresése méret szerint. Például:
find /home/user -size +10M
-mtime: fájlok keresése az utolsó módosítás ideje alapján. Például:
find /home/user -mtime -7
-user és -group: fájlok keresése tulajdonos és csoport szerint. Például:
find /home/user -user bob -group users
A -and, -or és -not logikai operátorok segítségével több keresési feltétel egyetlen kifejezésben kombinálható.
Például a következő parancs a /home/user könyvtárban található összes olyan fájlt megkeresi, amelyet az elmúlt 7 napban módosítottak, és amelyek mérete nagyobb, mint 10 megabájt:
find /home/user -type f -mtime -7 -size +10M
A find parancs a -exec kapcsolóval különböző műveleteket is végezhet a megtalált fájlokon. A következő paranccsal például törölheti az összes olyan fájlt, amelyet 30 napnál régebben módosítottak:
find /home/user -type f -mtime +30 -exec rm {} ;
Itt a -exec opció minden egyes megtalált fájlra lefuttatja az rm parancsot, és a parancsban a fájlnevet {}-vel helyettesíti.
A find parancs egy hatékony eszköz a fájlok és könyvtárak keresésére a Linuxban, amely különböző kezelési feladatok elvégzésére használható.
A find parancs számos egyéb opciót is támogat, amelyek segítségével pontosabban kereshetünk fájlokat:
-iname: fájlok keresése név alapján, a karakterek nagy- és kisbetűinek figyelembevétele nélkül. Például:
find /home/user -iname myfile.txt
-regex: olyan fájlok keresése, amelyek neve megfelel egy megadott reguláris kifejezésnek. Például:
find /home/user -regex ".*.txt$"
-maxdepth és -mindepth: korlátozza a keresés mélységét az alkönyvtárakban található fájlok esetében. Például:
find /home/user -maxdepth 2 -type f
-prune: bizonyos könyvtárak kizárása a keresésből. Például:
find /home/user -path /home/user/excluded -prune -o -type f -print
-print: a talált fájlok listájának kiadása a standard kimenetre. Például:
find /home/user -type f -print
A find támogatja a fájlok különböző attribútumok, például engedélyek, fájlattribútumok, SELinux-címkék és mások alapján történő keresését is. További információ ezekről az opciókról a find parancs dokumentációjában található.
A parancs a teljes fájlrendszerben kereshet fájlokat és könyvtárakat, ami sok időt és erőforrást igényelhet. Ezért fontos, hogy óvatos legyen a parancs használatakor, és győződjön meg arról, hogy a keresési feltételeket helyesen állította be, hogy elkerülje a felesleges fájlok vagy hibák megtalálását a rendszerben.