A find parancs az egyik leghasznosabb és legfontosabb parancs a Linuxon.
Alapértelmezés szerint telepítve van, és szinte mindegyiken elérhető Linux verziók. A Linux mindent fájlként tárol, és nyilvánvalóan érdemes tudni, hogyan találja meg ezeket a fájlokat.
A find paranccsal egy sor keresési feltétel segítségével megkeresheti az érdeklődésre számot tartó fájlokat. A kritériumok együtt vagy külön-külön is megadhatók, majd az eredménnyel műveleteket hajthatnak végre. Ebben az oktatóanyagban a find parancsot használati példákkal ismertetjük.
Az aktuális könyvtárban és alkönyvtáraiban található összes fájl listázásához használhatjuk a következőket:
Alternatív megoldásként használhatjuk a 'find . ' , ami ugyanazt az eredményt adja.
Ha csak könyvtárakat kell keresnie, használhatja:
$ találni. -d típusú
Ha csak fájlokat szeretne keresni, könyvtárakat nem:
$ találni. -típus f
Fájlok keresése egy adott könyvtártípusban:
$ find /root
Ez a parancs megkeresi az összes fájlt a /root könyvtárban.
Ha egy fájlt név szerint szeretne keresni egy adott könyvtárban, írja be:
$ find /root -name "linuxtechi.txt"
Ez a parancs megkeresi a linuxtechi.txt fájlt a /root könyvtárban. Ezenkívül megtaláljuk az összes .txt kiterjesztésű fájlt:
$ find /root -name "*.txt"
Ha több könyvtárban szeretne fájlokat keresni, írja be:
$ find /root /etc -name "linuxtechi.txt"
Ezzel a paranccsal megkereshetjük a linuxtechi.txt fájlt a /root & /etc könyvtárakban.
Ezzel a paranccsal megtalálhatjuk a linuxtechi.txt fájlt a /root és /etc könyvtárban.
Fájlok keresése a kis- és nagybetűktől eltérő módon a -name paranccsal:
$ find /root -name "Linuxtechi.txt"
Ennek eredményeként az összes linuxtechi.txt nevű fájlt megkapja. Ebben az esetben több fájl is lehet, mivel a linuxtechi.txt megegyezik a LINUXTECHI.txt fájllal.
Tegyük fel, hogy egy bizonyos fájltípuson kívül minden fájlt meg akarunk találni. Ennek eléréséhez írja be:
$ find /root -not -name "*.txt"
Fájlok keresésekor több feltételt is kombinálhatunk. Tegyük fel, hogy szükségünk van .txt és .html kiterjesztésű fájlokra:
$ találni. -regex ".*\.\(txt\|html\)$"
Több keresési feltételt is kombinálhatunk, ami az egyik feltétel teljesülése alapján a fájlok keresését eredményezi. Ez az OR operátor használatával történik:
$ find -name "*.txt" -o -name "linuxtechi*"
Adott engedélyekkel rendelkező fájlok kereséséhez használja a -perm parancsot:
$ find /root -type f -perm 0777
A kereséshez rejtett fájlok a könyvtárba írja be:
$ keresés ~ -type f név ".*"
Az SGID bitekkel rendelkező fájlok kereséséhez futtassa a következő parancsot:
$ találni. -perm /g=s
SUID bitekkel rendelkező fájlok kereséséhez használja:
$ találni. -perm /u=s
Csak a végrehajtható fájlok kereséséhez írja be:
$ találni. -perm /a=x
Ezenkívül a find paranccsal csak olvasható fájlokat találhat:
$ find /root -perm /u=r
Ha egy adott felhasználóhoz szeretne fájlokat keresni, használja a következő parancsot:
$ találni. - linuxtech felhasználó
Egy adott csoporthoz tartozó fájlok kereséséhez használja:
$ találni. -csoportos apache
Ha azt szeretnénk keresni, hogy kinek a méretét ismerjük, akkor használhatjuk a -size-t:
$ find / -size -2M
Ha olyan fájlt keresünk, amelynek a méretét nem ismerjük, de tudjuk a hozzávetőleges méretét, vagy csak egy bizonyos mérettartományban szeretnénk fájlokat kiválasztani, akkor megadhatjuk:
$ megtalál / -méret +2M -méret -5M
Használhatja a find parancsokat, ha például 50 mb-nál nehezebb fájlokat keres:
$ talál / -méret +50M
Például meg akarjuk találni az összes 8 nappal ezelőtt módosított fájlt. Ezt a find parancs '-mtime' opciójával érhetjük el
Például megtaláljuk az összes 8 napja szerkesztett fájlt. Ez a -mtime paranccsal történik:
$ find / -mtime 8
Megtalálhatja azokat a fájlokat, amelyek 8 nappal ezelőtt szerepeltek az -atime-val:
$ find / -atime 8
A rendszerben lévő összes üres fájl megkereséséhez írja be:
$ find / -type f -empty
A könyvtáraik megjelenítéséhez:
$ keresés ~/ -type d -empty
A legnagyobb vagy legkisebb fájlok listájának megjelenítéséhez a find -ot használjuk a sort együtt, és ha 3 "legtöbb-legnagyobb" listát kell megadnunk, akkor a head -et is használjuk.
Az aktuális könyvtár három fájljának megjelenítéséhez írja be:
$ találni. -type f -exec ls -s () \; | sort -n -r | fej-3
Hasonlóképpen felsorolhatjuk az aktuális könyvtár legkisebb fájljait is:
$ találni. -type f -exec ls -s () \; | sort -n | fej-3
A find parancs speciális használati eseteket kínálhat. Például 644 bizonyos fájl összes engedélyét módosíthatjuk 777-re. Ehhez a következőt hajtjuk végre:
$ find / -type f -perm 644 -print -exec chmod 777 () \;
Előbb-utóbb előfordulhat, hogy törölnie kell bizonyos fájlokat. Ha ez megtörténik, írja be:
$ find / -type f -name "linuxtechi.*" -exec rm -f () \;
A fenti példák tökéletesen demonstrálják a find parancs erejét, amely nagyban leegyszerűsítheti a fájlok keresését.
Frissítve: 2019.11.02 Közzétéve: 2016.07.25
A Linux legsokoldalúbb és legfunkcionálisabb keresési parancsa a − megtalálja. Ez a cikk egy csalólap, amely példákat tartalmaz a használatára.
megtalálja<где искать> <опции>
<где искать> — a gyökérkönyvtár elérési útja, ahonnan a keresést el kell indítani. Például keresse meg a /home/user - keresést a megfelelő könyvtárban. Az aktuális könyvtárhoz használja a "." pontot.
<опции> — a kereséshez szükséges szabályok összessége.
* alapértelmezés szerint a keresés rekurzív. Ha egy adott könyvtárban szeretne keresni, használja a lehetőséget maximális mélység.
választási lehetőség | Leírás |
---|---|
-név | Keresés név szerint. |
-név | Kis- és nagybetűk megkülönböztetése név szerint. |
-típus |
A keresési objektum típusa. Lehetséges lehetőségek:
|
-méret | Az objektum mérete. 512 bájtos blokkokban vagy egyszerűen bájtokban ("c" szimbólummal) van megadva. |
-mtime | Fájl módosítási idő. Napokban megadva. |
-mmin | Idő módosítása percekben. |
-Egy idő | Az objektum utolsó elérési ideje napokban. |
-benne vagyok | Utolsó hozzáférési idő percekben. |
-ctime | Utoljára módosítva tulajdonos vagy az objektum jogai napokban. |
-cm | Az utolsó tulajdonos vagy jogok perceken belül megváltoznak. |
-felhasználó | Keresés tulajdonos szerint. |
-csoport | Csoportonként. |
-perm | Bizonyos hozzáférési jogokkal. |
-mélység | A keresés ne a gyökérből induljon, hanem a legmélyebben beágyazott könyvtárból. |
-maximális mélység | A címtárkeresés maximális mélysége. -maxdepth 0 - csak az aktuális könyvtárban keressen. Alapértelmezés szerint a keresés rekurzív. |
-aszalt szilva | A felsorolt könyvtárak kizárása. |
-hegy | Ne lépjen át más fájlrendszerekre. |
-regex | Név szerint reguláris kifejezéssel. |
-regextype<тип> | A reguláris kifejezés típusa. |
-L | A szimbolikus hivatkozások (szimbólumhivatkozások) tartalmát jeleníti meg. |
-üres | Keressen üres könyvtárakat. |
-töröl | Törlés található. |
-ls | Kimenet ls -dgilsként |
-nyomtatás | A műsor megtalálva. |
-print0 | Út a talált tárgyakhoz. |
-végrehajtó<команда> {} \; | Futtassa a parancsot a megtalált helyen. |
-rendben | Adjon ki egy promptot az -exec végrehajtása előtt. |
A tényleges opciók teljes készlete a paranccsal érhető el férfi talál.
Find / -name "file.txt"
* V ezt a példát nevű fájlt fog keresni fájl.txt végig fájlrendszer a gyökértől kezdve / .
Fájl keresése a nevének egy része alapján:
find / -name "*.tmp"
* ez a parancs a gyökérkönyvtárban lévő összes mappát vagy fájlt megkeresi /, befejeződik .tmp
Keresse meg az összes fájlt vagy mappát, amelyek ezzel kezdődnek sess_és ezzel fejezzük be CD
megtalálja. -név "sess_*" -a -név "*cd"
* -a: logikai ÉS, -o: logikai VAGY.
1. Keressen olyan fájlokat, amelyek bizonyos számú napja megváltoztak:
megtalálja. -típus f -mtime +60
* parancsot adott meg fogja találni azokat a fájlokat, amelyeket több mint 60 napja módosítottak.
2. Keressen fájlokat a segítségével újabb. Ez az opció a 4.3.3-as verzió óta elérhető (megtekintheti a paranccsal keresse meg a --verziót).
a) a változás időpontja:
megtalálja. -type f -newermt "2019-11-02 00:00"
* megjeleníti az összes fájlt, amely 2019.11.02. 00:00 óta megváltozott.
megtalálja. -f típusú -newermt 2019-10-31 ! -newermt 2019-11-02
* megtalálja az összes fájlt, amely 2019. 10. 31. és 2019. 11. 01. között módosult (beleértve).
b) a jelentkezés időpontja:
megtalálja. -f típusú -újabb 2019-10-08
* az összes fájl elérve 2019.10.08. óta.
megtalálja. -type f -újabb 2019-10-01 ! -újabb 2019-11-01
* Októberben elért összes fájl.
c) létrehozás dátuma:
megtalálja. -f típusú -újabb 2019-09-07
megtalálja. -type f -newerct 2019-09-07 ! -újabb "2019-09-09 07:50:00"
* fájlok 2019. 09. 07. 00:00:00 és 2019. 09. 09. 07:50 között
Csak fájlok keresése az aktuális könyvtárban és annak almappáiban:
* f— csak fájlok keresése.
Minden írási és olvasási jogot keresünk:
find / -perm 0666
Olyan fájlok keresése, amelyekhez csak a tulajdonos férhet hozzá:
find / -perm 0600
find / -type f -exec grep -i -H "tartalom" () \;
* Ebben a példában a könyvtárban lévő összes fájl rekurzív keresése történik / és a karakterláncot tartalmazók listája tartalom.
find /data -type f -printf "%TY-%Tm-%Td %TT %p\n" | sort-r
* parancs megkeresi a könyvtárban található összes fájlt /adat, hozzáfűzi a névhez a módosítás dátumát, és név szerint rendezi az adatokat. Ennek eredményeként azt kapjuk, hogy a fájlok a módosításuk sorrendjében mennek.
keresse meg /home/user/* -type d -exec chmod 2700 () \;
* ebben a példában minden könyvtárat keresünk ( d típus) a könyvtárban /home/userés jogokat állít fel nekik 2700 .
csapat megtalálja kényelmesen használható automatikus eltávolítás elavult fájlok.
Cron munkák megnyitása szerkesztésre:
És tedd hozzá:
0 0 * * * /bin/find /tmp -mtime +14 -exec rm () \;
* Ebben a példában az összes fájlt és mappát töröljük a könyvtárból /tmp, századdal idősebb 14
napok. A munka minden nap órakor tart 00:00
.
* teljes elérési út futtatható fájl keresse parancsot mely lelet- különböző UNIX rendszerekben különböző helyeken lehet elhelyezni.
A Linuxnak van egy nagyon erős és hasznos parancs fájlok kereséséhez - parancs megtalálja. Nagyon sok funkcióval rendelkezik a fájlok kereséséhez, azonban a kezdőknek néha nehézségeket okoz, nagyrészt a szintaxisa miatt.
Kezdjük egy egyszerű példával a find paranccsal a config nevű fájlok megkeresésére a számítógépén. A konfigurációs fájlokat a / gyökérkönyvtárból kiindulva fogjuk keresni. Ehhez rootként kell futtatnia a parancsot, hogy elegendő hozzáférési jogosultsággal rendelkezzen, ellenkező esetben "Engedély megtagadva" üzeneteket fog kapni. Tehát futtassuk a parancsot:
Keresse meg a / -name config -print
A parancs jelentése a következő: keresse meg a config (-name config) nevű fájlokat a / könyvtárból (a find parancs első paramétere) kiindulva, és írja ki a fájlneveket a képernyőre (argumentum -print). Megjegyzem, a keresés rekurzív, vagyis kereséskor az összes beágyazott könyvtár megtekintésre kerül. Amint látja, minden egyszerű. Most nézzük meg a parancs szintaxisát, és folytassuk a fő argumentumok áttekintését.
A find parancs általános szintaxisa, amelyben megtalálható útmutató, nem tűnik egészen egyszerűnek, ezért adok egy kényelmesebbet az észlelés érdekében:
keresés [útvonal] [opciók] [keresési feltételek] [fájlműveletek]
Keresési útvonalként abszolút és relatív útvonalakat is használhat, valamint az útvonalak szóközzel elválasztott listáját.
A Find parancs beállításai a "-" karakterrel kezdődően, majd az opció nevével kezdődnek. Fontolja meg a fő lehetőségeket.
A find parancsnak több keresési feltétele lehet (más néven tesztek). Minden feltétel egy adott tesztfeltétel, amely igaz vagy hamis értéket ad vissza. Ez összehasonlítható egy if utasítás feltételeivel a programozásban. Az egyes fájlok feldolgozása során a find parancs sorra ellenőrzi az egyes feltételeket, és ha mindegyik feltétel false értéket ad vissza, akkor a find parancs a következő fájlra lép. A find parancsnak jó néhány kritériuma van, ezek közül csak néhányat nézünk meg.
-időben N | A fájlt utoljára N napja tekintették meg. |
-mtimeN | A fájl legutóbbi módosítása N napja történt. |
-név minta | Fájlnév (névminta) elérési út nélkül. Javasoljuk, hogy a mintát mindig idézőjelbe tegye. |
-újabb másik_fájl | A fájlt később módosították, mint az other_file. |
- méret [±] N | A fájl mérete N blokk, ha +N van megadva, akkor a fájl mérete nagyobb, mint N , az -N kisebb. Az N utáni karakter a blokk méretét jelzi. b - 512 bájt, c - bájt, w - 2 bájt, k - kilobájt, M - megabyte, G - gigabájt. |
- C típusú | C fájltípus. A C leggyakrabban használt értékei: d egy könyvtár, f egy fájl. |
-felhasználói felhasználónév | A fájl tulajdonosa egy Felhasználónév nevű felhasználó. |
Keresse meg az aktuális könyvtárban közönséges fájlokat (nem könyvtárakat), amelyek neve "~" karakterrel kezdődik.
megtalálja. -type f -name "~*" -print
Keresse meg az aktuális könyvtárban azokat a fájlokat, amelyeket a file.bak fájlnál később módosítottak.
megtalálja. -újabb fájl.bak -type f -print
A kritériumok operátorok használatával kombinálhatók. Az alábbiakban felsoroljuk az operátorokat prioritásuk szerinti csökkenő sorrendben.
Általánosságban elmondható, hogy operátorok használatakor a kritériumokat prioritásuk sorrendjében ellenőrzik. A sorrendet zárójelek használatával módosíthatja. A zárójeleket fordított perjellel kell elválasztani.
Keressen olyan fájlokat az aktuális könyvtárban, amelyek "~" vagy c "temp" karakterrel kezdődnek, és csak közönséges fájlok (-f típusú), nem könyvtárak.
megtalálja. \(-név "~*" -vagy -név "temp*" \) -type f -print
Keresse meg az aktuális könyvtárban (alkönyvtárak feldolgozása nélkül - -maxdeph 1) a 600 megabájtnál nagyobb és 1 gigabájtnál kisebb (-méret) fájlokat (-file f), vagy olyan fájlokat, amelyek neve ".mpeg"-re (-name) végződik.
megtalálja. -maxdepth 1 \(\(-méret +600M -és -size -1G \) -vagy -name "*.mpeg" \) -és -type f
A find parancs végrehajtásakor különféle műveleteket hajthat végre a talált fájlokon. Tekintsük a főbbeket.
A végrehajtható parancsokban argumentumként használhatja a () opciót, amelyet az aktuális fájl elérési útja helyettesít.
Keresse meg az 1000 bájtnál nagyobb közönséges fájlokat az aktuális könyvtárban, és hajtsa végre az ls -dils parancsot (ls művelet) rajtuk.
megtalálja. -méret +1000c -típus f -ls
Keresse meg az aktuális könyvtárban a "~" tilde karakterrel kezdődő közönséges fájlokat, és mindegyik fájlhoz küldjön ki egy kérést a törlésére (az rm parancs végrehajtására).
megtalálja. -name "~*" -type f -ok rm () \;
A jegyzetben nagyon fontosnak és hasznosnak tartottuk linux parancs find , amely szinte korlátlan lehetőséget biztosít a fájlok megtalálására számos kritérium és minta alapján. A parancsok (műveletek) segítségével pedig kereshet fájlokat, és bármilyen műveletet végrehajthat rajtuk.
Ma áttekintünk néhány legnépszerűbb módot a fájlok megtalálására Linuxban a terminál használatával.
1) találd meg: Fájlok kereséséhez innen parancs sor használhatja a "find" parancsot. Ennek a parancsnak a szintaxisa a következő:
elérési feltétel keresése művelet
pálya - A keresési könyvtár megadására szolgáló szakasz. Ha nincs megadva semmi, a keresés az aktuális könyvtáron megy keresztül.
"kritériumok" - Keresési lehetőségek.
akció - A keresés állapotát befolyásoló vagy vezérlő beállítások, mint pl
2) keresse meg: Csapat „keresni” ez a "find -name" parancs alternatívája. A find parancs fájlokat keres a fájlrendszer kiválasztott részében, és előfordulhat, hogy a folyamat nem túl gyors. Másrészt a locate parancs fájlokat keres a speciálisan erre a célra létrehozott /var/lib/locatedb adatbázisban, ami sokkal gyorsabb. Az adatbázis frissítéséhez használja a parancsot frissítettb.
3) ahol: “hol van" visszaadja a kód (-b opció), a kézikönyvoldalak (-m) és a forrásfájlok (-s opció) helyét a megadott parancshoz. Ha nincs megadva opció, akkor a teljes elérhető információk. Ez a parancs gyorsabb, mint " megtalálja" de kevésbé teljes.
4) amely: csapat" melyik" megkeresi a megadott parancs PATH változójában felsorolt összes elérési utat.
5) típus:
Opciók nélkül hívva megmutatja, hogy a nevek hogyan lesznek értelmezve
ha parancsnévként használjuk. Ha az opciót használják -a, csapat típus listát ad az összes könyvtárról, ahol van futtatható fájl
megfelelő név. A lista álneveket és függvényeket is tartalmaz,
hacsak nincs megadva opció -o. NAK NEK
a parancs hash nem hivatkozik, ha az opció meg van adva -a. Csapat típus 0-t ad vissza,
ha az argumentumok közül legalább egy megtalálható, ellenkező esetben 1.
őr
Explo.ru - minden a turizmusról és a kikapcsolódásról: forró túrák és kirándulások Törökországba, Egyiptomba,
Valószínűleg ismeri ezt a problémát: Van egy fájl, és nem emlékszik, hová tette.
Ebben az esetben a find parancs hasznos. Hogyan kell használni? Természetesen ehhez a segédprogramhoz egy nagy kézikönyvoldal is tartozik, de megnézünk néhány tipikus esetet. Böngésszen a könyvtárfában, az aktuálistól kezdve, és keresse meg a lostfile.txt fájlt:
Ha nagy könyvtárfában keresünk, a find parancs meglehetősen lassú lehet. Néha kényelmesebb a locate parancs használata. Nem közvetlenül a fájlrendszerben keresi a fájlt, hanem átnézi az adatbázisát. Ez a módszer sokkal gyorsabb, de az adatbázis elavulttá válhat. Egyes disztribúciók esetében ez az adatbázis minden este frissül. A frissítéshez időről időre manuálisan is futtathatja az updatedb parancsot. locate keres részkarakterláncokat:
A megengedett helyesírási hibák száma a fájlnév hosszától függ, de a -t kapcsolóval beállítható. Legfeljebb 2 hiba engedélyezéséhez és egy szervizkarakter használatához egyszerűen írja be:
Néha szükséges áttekintést kapni egy címtárfáról. Például kapott egy új CD-ROM-ot, és szeretné tudni, mi van rajta. Csak használhatja az ls - R billentyűket. Személy szerint az olvashatóság érdekében az alábbi módszerek egyikét részesítem előnyben. A fa (sunsite.unc.edu/pub/Linux/utils/file/tree-1.2.tgz) egy könyvtárfát jelenít meg diagramként.
Vagy használja a jó régi leletet. A find Gnu verziójában, amelyet általában Linuxszal szállítanak, lehetséges a kimeneti formátum megváltoztatása, például a fájlnév és a méret megjelenítéséhez:
Használhat egy kis perl rutint, amely együttműködik az ls paranccsal az ilyesmihez. Letölthető innen: lsperl.gz . Számos más címtárfa-böngésző segédprogram létezik, de a legtöbb esetben ezek is elegendőek.
A szöveges karakterláncok fájlokban való keresésére szolgáló szabványos segédprogramok a grep / egrep a normál kifejezések kereséséhez és az fgrep a literális karakterláncok kereséséhez. Ha az aktuális könyvtár összes fájljában szeretne kifejezést keresni, egyszerűen írja be:
Ha nehéznek találja megjegyezni ezeket a hosszú parancsokat, használjon egy kis szkriptet, amelyet innen tölthet le: grepfind.gz . A szkript a nem nyomtatható karaktereket is eltávolítja a keresési karakterláncból, hogy véletlenül se kapjon bináris fájlt az egrep keresése eredményeként.
Nagyon érdekes program keresés - agrep . Az Agrep alapvetően az egrephez hasonlóan működik, de lehetővé teszi az elírások alapján történő keresést. Egy kifejezés kereséséhez és legfeljebb 2 elírás engedélyezéséhez írja be:
Ezt követően minden korábban indexelt fájlban kereshet egy karakterláncot
glimpse -i -2 "keresési kifejezés" |
A glimpse a helyesírási hibákat is engedélyezi (mint az agrep is), a -2 pedig azt jelzi, hogy két hiba megengedett. bepillantás elérhető