Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

Ha gyakran dolgozik a parancssorban számítógépen vagy olyan szerveren, ahol nincs grafikus héj, előbb-utóbb szembe kell néznie azzal a feladattal, hogy fájlokat keressen. Szerencsére a Linux már rendelkezik egy beépített paranccsal, amely lehetővé teszi a fájl megtalálását a rendszeren.

Ma a find parancs használatáról fogunk beszélni - hidd el, meg kell tanulnod dolgozni ezzel a hatékony és kényelmes eszközzel.

A find parancs használata

Egyszerűen fogalmazva, a find parancs alapvető szintaxisa a következő:

Keresse meg a /path beállítások fájlnevét

Fedezzük fel a csapat lehetőségeit

Fájl keresése név szerint

Az első paraméter az elérési út. Ha fogalma sincs, hol rejtőzhet a fájl, az elérési út helyett tegye a /-t - ez elég. A teljes lemez keresése azonban meglehetősen hosszadalmas lehet, és ha tudja, hol lehet a fájl, adja meg azt a mappát, ahol a keresést el kívánja indítani (például ~ a felhasználó saját mappájában való kereséshez).

Most térjünk át a keresési lehetőségekre. Két lehetőség van a fájl név szerinti keresésére:

  • név – kis- és nagybetűk megkülönböztetése a fájlnévre
  • iname – a kis- és nagybetűk megkülönböztetése nélkül keres fájlnévre

Emlékeztetni kell arra, hogy Linuxban a fájlnév kis- és nagybetűje számít, és ha meg kell találni például az Ubuntu.txt fájlt, akkor a következő parancs nem ad eredményt:

Keresse meg a / -name ubuntu.txt fájlt

De használhatja az iname parancsot, és végezhet kis- és nagybetűk közötti keresést:

Keresse meg a / -name ubuntu.txt fájlt

Keresés típus szerint

A find paranccsal nem csak fájlokat kereshet. Íme a keresés által támogatott leíró típusok:

  • f - normál fájl
  • d - könyvtár
  • l - szimbolikus link
  • c - karakter eszköz
  • b - blokk eszköz

Például, ha az aktuális felhasználó kezdőkönyvtárában a "config" karakterlánccal kezdődő összes könyvtárat meg szeretné keresni, futtassa a következő parancsot:

Keresse meg: ~ -type d -name config*

Keresési eredmények kiadása fájlba

A parancs eredményének fájlba való kiírásának kényelmes funkciója rendkívül hasznos lesz, ha sok keresési eredmény van, vagy ha később dolgozni kell velük. Például azért, hogy listát vezessen az összes találtról konfigurációs fájlok fájlhoz conf_search, futtassa a következő parancsot:

Keresse meg a /etc -type f -name „*.conf” > conf_search elemet

Fájlok keresése méret szerint

Ez egy nagyon hasznos paraméter, amikor a lemezterület fogy, és meg kell értenie, hová tűnt. Például 1000 MB-nál nagyobb fájlok kereséséhez futtassa a következő parancsot:

Find / -size +1000M

A következő rövidítéseket használhatja:

  • c - bájtok
  • k - kilobájt
  • M - megabájt
  • G - gigabájt
  • b - 512 bájtos blokkok

Ez csak néhány módja egy erős csapat használatának. A parancs futtatásával több mód is megtalálható a kézikönyvben

Ez a cikk egy részlet a könyvből Linux&Unix - Shell programozás», David Tensley.

Sietve szerkesztettem párat, ha elgépelési hibákat észlelsz, írd meg kommentben.

A munka során gyakran szükségessé válik bizonyos jellemzőkkel rendelkező fájlok keresése, például hozzáférési jogok, méret, típus stb. A find parancs egy sokoldalú keresőeszköz: lehetővé teszi fájlok és könyvtárak keresését, a rendszer összes könyvtárának vagy csak az aktuális könyvtár megtekintését.

Ez a fejezet a find parancs használatával kapcsolatos alábbi témákat tárgyalja:

Parancslehetőségek keresése;

Példák a find parancs különféle opcióinak használatára;

Példák megosztás xargs és keresse meg a parancsokat.

A find parancs lehetőségei kiterjedtek, és a felkínált opciók listája is széles. Ez a fejezet a legfontosabbakat ismerteti. A find parancs akár lemezeken is kereshet NFS (hálózati fájl Rendszer- hálózati fájlrendszer), természetesen a megfelelő jogosultságokkal. BAN BEN hasonló esetek a parancs általában a háttérben fut le, mert a címtárfa böngészése időigényes. A find parancs általános formátuma:

megtalálja elérési út -opciók

Ahol elérési útnév az a könyvtár, ahonnan a keresést el kell indítani. A '.' karakter az aktuális könyvtár jelölésére szolgál, a / karakter a gyökérkönyvtár, a "~" karakter pedig a változóba van írva. $HOME az aktuális felhasználó saját könyvtára.

2.1. parancslehetőségek keresése

Maradjunk a find parancs főbb opcióinak leírásánál.

Név Olyan fájlok keresése, amelyek neve megegyezik a megadott mintával

Nyomtatás Írja be a talált fájlok teljes nevét a szabványos kimenetre.

Perm A megadott hozzáférési móddal rendelkező fájlok keresése

Prune A find parancs végrehajtásának megakadályozására szolgál rekurzív keresés már megtalált elérési útnévvel; ha a -depth opció meg van adva, a -prune kapcsoló figyelmen kívül marad

Felhasználó A megadott felhasználó tulajdonában lévő fájlok keresése

Csoport Egy adott csoporthoz tartozó fájlok keresése

Mtime -n+n Olyan fájlok keresése, amelyek tartalma kisebb, mint (-) vagy több mint (+) n napja; az -atime és -ctime opciók is lehetővé teszik a fájlok keresését az utolsó olvasás dátuma és a fájlattribútumok utolsó módosításának dátuma alapján.

Nogroup Nem létező csoporthoz tartozó fájlok keresése, amelyekhez, vagyis nincs bejegyzés a fájlban /etc/groups

Nouser Nem létező felhasználó tulajdonában lévő fájlok keresése, amelyekre, vagyis nincs bejegyzés a fájlban /etc/passwd

újabb fájlt Keressen olyan fájlokat, amelyek a megadott fájlnál később jöttek létre

Típus Adott típusú fájlokat keres, nevezetesen: b- speciális blokkfájl; d- katalógus; Val vel- speciális karakterfájl; p- nevű cső; l- szimbolikus link; s- aljzat; f- normál fájl

méret n Olyan fájlok keresése, amelyek mérete: n egységek; a következő mértékegységek lehetségesek: b- blokkméret 512 bájt (alapbeállítás); Val vel- bájt; k- kilobájt (1024 bájt); w- kétbájtos szó

Mélység Fájlok keresésekor először az aktuális könyvtár tartalmát keresi, és csak ezután kerül ellenőrzésre a könyvtárnak megfelelő bejegyzés

F stype Egy bizonyos típusú fájlrendszerben lévő fájlok keresése; általában a vonatkozó információkat egy fájlban tárolják /etc/fstab, amely a helyi számítógépen használt fájlrendszerekről tartalmaz adatokat

Mount Csak az aktuális fájlrendszerben keres fájlokat; ennek az opciónak analógja az -xdev -exec opció. Végrehajt egy interpreter parancsot héj minden észlelt fájl esetében; a végrehajtható parancsok formázási paranccsal rendelkeznek ( );

(jegyezd meg a () és a 😉 szimbólumok közötti szóközt

Ok Hasonló az -exec -hez, de a parancs végrehajtása előtt rákérdez

2.1.1. választási lehetőség -név

Amikor a find paranccsal dolgozik, a -name paramétert használják leggyakrabban. Utána egy fájlnév-mintának kell lennie idézőjelben.
Ha meg szeretné találni az összes kiterjesztésű fájlt. txt a saját könyvtárában adja meg a karaktert elérési útként. A kezdőkönyvtár nevét a rendszer kivonja a változóból $HOME.

$ find ~ -name "*.txt" -print

Az összes kiterjesztésű fájl megkereséséhez .txt az aktuális könyvtárban található, használja a következő parancsot:

$ találni. -name "*.txt" -print

Az aktuális könyvtárban minden olyan fájl megkereséséhez, amelynek a neve legalább egy karaktert tartalmaz nagybetűs, írja be a következő parancsot:

$ találni. -név "*" -nyomtatás

Keresse a katalógusban /stb"" karakterrel kezdődő fájlok házigazda", engedélyezi a parancsot

$ find /etc -name "hoat*" -print

Keresse meg a kezdőkönyvtárban az összes kiterjesztésű fájlt .txt, valamint azokat a fájlokat, amelyek neve ponttal kezdődik, a parancs hozza létre

$ find ~ -name "*.txt" -print -o -name ".*" -print

választási lehetőség -O a logikai VAGY művelet jelölése. Ha alkalmazza, a rendszeres nevű fájlok mellett olyan fájlok is megtalálhatók, amelyek neve ponttal kezdődik.

Ha listát szeretne kapni a rendszeren lévő összes fájlról, amelynek nincs kiterjesztése, akkor futtassa a következő parancsot, de legyen óvatos, mert jelentősen lelassíthatja a rendszert:

$ find / -name "*" -print

Az alábbiakban bemutatjuk, hogyan lehet megtalálni az összes olyan fájlt, amelyek nevét először kisbetű követi, majd két szám és egy kiterjesztés .txt(Például, ax37.xt):

$ találni. -név » [a-x] [a-x] . txt" -print

2.1.2. választási lehetőség -perm

A -perm opció lehetővé teszi a megadott hozzáférési móddal rendelkező fájlok megkeresését. Például hozzáférési móddal rendelkező fájlok kereséséhez 755 (bármely felhasználó megtekintheti és végrehajthatja, de írási joga csak a tulajdonosnak van) a következő parancsot kell használnia:

$ találni. -perm 755 -print

A mód értékének kötőjellel történő előtagja a többi bit figyelmen kívül hagyásával megkeresi azokat a fájlokat, amelyekben az összes megadott engedélybit be van állítva. Például a következő parancs olyan fájlokat keres, amelyekhez más felhasználók teljes hozzáféréssel rendelkeznek:

$ találni. -perm -007 -nyomat

Ha a mód értékét pluszjel előzi meg, akkor a keresés olyan fájlok után történik, amelyek legalább egy megadott engedélybittel rendelkeznek, míg a többi bitet figyelmen kívül hagyja.

2.1.3. - aszalt szilva opció

Ha nem szeretne egy adott könyvtárban keresni, használja a -prune kapcsolót. Jelzésként szolgál a keresés leállítására az aktuális elérési útvonalon. Ha az elérési út egy könyvtárra mutat, a find parancs nem megy bele. Ha a -depth opció megvan, a -prune opció figyelmen kívül marad.

A következő parancs az aktuális könyvtárban keres alkönyvtárba való belépés nélkül /kuka:

$ találni. -name "bin" -prune -o -print

2.1.4. Lehetőségek -user és --nouser

Egy adott felhasználó tulajdonában lévő fájlok megkereséséhez adja meg a -user kapcsolót a find parancsban a felhasználónévvel együtt. Például a kezdőkönyvtárban a felhasználó tulajdonában lévő fájlok keresése Dave a következő paranccsal történik:

$ find ~ -user dave -print

Katalógus keresés /stb felhasználó tulajdonában lévő fájlok uucp, végrehajtja a következő parancsot:

$ find /etc -uaer uucp -print

A -nouser opció lehetővé teszi a nem létező felhasználók tulajdonában lévő fájlok keresését. Használata során olyan fájlokat keresnek, amelyek tulajdonosai nem rendelkeznek bejegyzéssel a fájlban. /etc/passwd. Nem kell konkrét felhasználónevet megadni: a find parancs elvégzi helyetted az összes szükséges munkát. Megkeresheti az összes olyan fájlt, amely nem létező felhasználók tulajdonában van és egy könyvtárban található /itthon, adja ki a következő parancsot:

$ find /home -nouaer -print

2.1.5. Opciók -group és -nogroup

A -group és -nogroup opciók megegyeznek az opciókkal -user-nouser/apps a csoportfelhasználók tulajdonában lévő összes fájlhoz cselekszik:

$ find /arra -group accta -print

A következő parancs a teljes rendszerben megkeresi a nem létező csoportokhoz tartozó fájlokat:

$ find / -nogroup -print

2.1.6. Opció -mtime

Az elért fájlok keresésekor a -mtime kapcsolót kell használni x napja. Ha az opció argumentum „-” jellel van ellátva, akkor a rendszer kijelöli azokat a fájlokat, amelyekhez egy ideig nem fértek hozzá. x napok. A '+' jellel ellátott argumentum az ellenkező eredményhez vezet - az utolsó során elért fájlok kiválasztása. x napok.

Az elmúlt öt napban nem frissített összes fájl megkereséséhez használja a következő parancsot:

$ find / -mtime -5 -print

A következő parancs a könyvtárban való kereséshez /var/admin az elmúlt három napban frissített fájlok:

$ find /var/adm -mtime +3 -print

2.1.7. Opció -újabb

Ha olyan fájlokat kell keresnie, amelyeket két adott fájl frissítése között értek el, használja a -newer kapcsolót. Alkalmazásának általános formátuma a következő:

újabb régi_fájl! -újabb új fájl

aláír ! ‘ a logikai tagadó operátor. Ez azt jelenti: keressen meg olyan fájlokat, amelyek újabbak, mint régi_fájl de régebbi mint új fájl.

Tegyük fel, hogy két olyan fájlunk van, amelyeket kicsivel több mint két nap eltéréssel frissítettek:

Rwxr-xr-x 1 gyökérgyökér 92. április 18. 11:18 age.awk
-rwxrwxr-x 1 gyökérgyökér 1054 ápr. 20. 19:37 belts.awk

A későbbiekben frissített összes fájl megtalálásához kor.awk, de előtte övek.awk, futtassa a következő parancsot (az -exec kapcsoló használatával az alábbiakban olvasható):

$ találni. -újabb kor.awk ! -újabb belts.awk -exec Is -1 () ;
-rwxrwxr-x 1 gyökérgyökér 62. április 18. 11:32 ./who.awk
-rwxrwxr-x 1 gyökérgyökér 49. április 18. 12:05 ./group.awk
-rw-r-r- 1 gyökérgyökér 201. április 20. 19:30 ./grade2.txt
-rwxrwxr-x 1 gyökérgyökér 1054 ápr. 20. 19:37 ./belts.awk

De mi van akkor, ha meg kell találnia például az elmúlt két órában létrehozott fájlokat, és nincs pontosan két órája létrehozott fájl, amellyel összehasonlíthatná? Hozzon létre egy ilyen fájlt! Erre a célra a touch -t parancsot használjuk, amely egy adott időbélyeggel ellátott fájlt hoz létre MMDChhmm (hónap-nap-óra-perc) formátumban. Például:

$ touch -t 05042140 dstamp
$ ls -1 dbélyeg
-rw-r-r- 1 dave admin 0 május 4. 21:40 dstamp

Az eredmény egy olyan fájl lesz, amelynek létrehozási dátuma május 4, a létrehozás ideje -21:40 (feltételezve, hogy az aktuális idő 23:40). Most már használhatja a find parancsot a -newer kapcsolóval, hogy megkeresse az elmúlt két órában frissített fájlokat:

$ találni. -újabb datamp -print

2.1.8. választási lehetőség -típus

OS UNIXÉs Linux támogatás Különféle típusok fájlokat. A kívánt típusú fájlok megkeresése a find paranccsal történik a -type kapcsolóval. Például egy könyvtár összes alkönyvtárának megkereséséhez /stb használja ezt a parancsot:

$ find /etc -type d -print

Az összes fájl listázásához, de a könyvtárakhoz nem, futtassa a következő parancsot:

$ találni. ! -type d -print

A következő parancs az összes szimbolikus hivatkozás megkeresésére szolgál egy könyvtárban /stb.

$ find /etc -type 1 -print

2.1.9. választási lehetőség -méret

A keresés során a fájl mérete a -size kapcsolóval adható meg N, Ahol N- a fájl mérete 512 bájtos blokkban. A lehetséges argumentumok jelentése a következő: +N- a megadott méretnél nagyobb fájlok keresése, -N- a megadottnál kevesebb N- egyenlő a megadottal. Ha az argumentum emellett a szimbólumot is tartalmazza Val vel, akkor a méretet bájtokban, nem blokkban megadottnak tekintjük, és ha a karakter k- kilobájtban. 1 MB-nál nagyobb fájlok kereséséhez használja a parancsot

$ találni. -aize -flOOOK -print

A következő parancs a könyvtárban keres /home/apache pontosan 100 bájt méretű fájlok:

$ talál /home/apache -sixe 100s -print

10 blokknál (5120 bájtnál) nagyobb fájlok kereséséhez használja a következő parancsot:

$ találni. -méret +10 -nyomat

2.1.10. Opció -mélység opció

A -depth opció lehetővé teszi a keresés megszervezését oly módon, hogy először az aktuális könyvtár minden fájlja (és rekurzív módon az összes alkönyvtár) kerül ellenőrzésre, és csak a végén - magának a könyvtárnak a bejegyzése. Ezt az opciót széles körben használják, amikor a cpio vagy a tar paranccsal szalagra archiválandó fájlok listáját készítik, mivel ebben az esetben először a könyvtár képét írják a szalagra, és csak utána állítják be a jogosultságokat. Ez lehetővé teszi a felhasználó számára, hogy archiválja azokat a könyvtárakat, amelyekhez nincs írási jogosultsága.
A következő parancs felsorolja az aktuális könyvtár összes fájlját és alkönyvtárát:

$ találni. -name "*" -print -o -name ".*" -print -depth

Így nézhet ki munkájának eredménye:

./.Xdefaults ./.bash_logout ./.bash_profile ./.bashrc ./.bash_nistory ./file ./Dir/file ./Dir/file2 ./Dir/file3 ./Dir/Subdir/file4 ./Dir/Subdir ./dir

2.1.11. -mount opció

A find parancs -mount opciója biztosítja a fájlok keresését csak az aktuális fájlrendszeren, kivéve a többi csatolt fájlrendszert. A következő példa az összes kiterjesztésű fájlt megkeresi .xc az aktuális lemezpartícióban:

$ find / -name "*.xc" -mount -print

2.1.12. Keressen fájlokat későbbi archiválással a cpio paranccsal

A cpio parancsot elsősorban fájlok szalagra írására és olvasására használják. Nagyon gyakran a find paranccsal együtt használatos, és a fájllistát egy csövön keresztül kapja meg tőle.

Így írható a könyvtártartalom szalagra /stb, /itthonÉs /apps:

$ cd /
$ find etc home appa -depth -print | cpio -ov > dev/rmtO

választási lehetőség -O A cpio parancs beállítja a fájlok szalagra írásának módját. választási lehetőség -v (bőbeszédű- verbális mód) utasítja a cpio parancsot, hogy jelentsen minden feldolgozott fájlt.

Figyeljük meg, hogy a vezető '/' hiányzik a könyvtárnevekből. Ez beállítja az archivált könyvtárak relatív elérési útjait, amelyek az archívumból való későbbi fájlok beolvasásakor lehetővé teszik, hogy az operációs rendszer bármely részében újra létrejöjjenek, és nem csak a gyökérkönyvtárban.

2.1.13. Opciók -exec és -ok

Tegyük fel, hogy megtalálta a szükséges fájlokat, és bizonyos műveleteket szeretne végrehajtani velük. Ebben az esetben az -exec opcióra van szükség (egyes rendszerek csak az ls vagy ls -1 parancsokat engedélyezik az -exec kapcsolóval). Sok felhasználó az -exec opciót használja a törölni kívánt régi fájlok megkeresésére. Azt javaslom, hogy először futtasd az ls-t az rm helyett, hogy biztosan megtalálja a törölni kívánt fájlokat.

Az -exec opció után adja meg a végrehajtandó parancsot, majd kapcsos zárójelet, szóközt, fordított perjelet és végül pontosvesszőt. Vegyünk egy példát:

$ találni. -type f -exec Xa -1 () ;
-rwxr-xr-x 10 gyökérkerék 1222, 1993. január 4./sbin/C80
-rwxr-xr-x 10 gyökérkerék 1222, 1993. január 4./sbin/Normál
-rwxr-xr-x 10 gyökérkerék 1222, 1993. január 4./sbin/Rewid

Ez normál fájlokat keres, amelyek az ls -1 paranccsal jelennek meg a képernyőn.

Nem frissített fájlok keresése egy könyvtárban /naplók az elmúlt öt napon belül, és távolítsa el őket, futtassa a következő parancsot:

$ find /log" -type f -mtime +5 -exec rm () ;

Fájlok mozgatásakor és törlésekor körültekintően kell eljárni. Használja az -ok opciót, amely lehetővé teszi az mv és rm parancsok futtatását biztonságos mód(a következő fájl feldolgozása előtt megerősítési kérés kerül kiadásra). A következő példában a find parancs megkeresi a kiterjesztésű fájlokat .log, és ha egy fájl öt napnál régebbi, akkor törli, de először kéri a művelet megerősítését:

$ találni. -name "*.LOG" -mtime +5 -ok rm() ;
< rm … ./nets.LOG >? nál nél

Fájl törléséhez írja be nál nélés ennek megakadályozása érdekében - n.

2.1.14. További példák a keresési parancsokhoz

Nézzünk még néhány példát a find parancs használatának illusztrálására. Az alábbiakban bemutatjuk, hogyan találhatja meg az összes fájlt a saját könyvtárában:

$ talál ~ -nyomat

Keresse meg az összes olyan fájlt, amelyhez bit be van állítva SUID, a következő parancs lehetővé teszi:

$ találni. -típusú f -perm +4000 -print

Az üres fájlok listájának megtekintéséhez használja a következő parancsot:

$ find / -type f -size 0 -exec Is -1 () ;

Az egyik rendszeremen minden nap rendszernapló készül. A naplófájl nevéhez egy szám kerül, amely lehetővé teszi, hogy azonnal megállapítható legyen, hogy melyik fájl készült később és melyik korábban. Például fájlverziók admin.log sorszámozva: admin.log.001, admin.log.002 stb. A következő a find parancs, amely eltávolítja az összes fájlt admin.log több mint hét napja létrehozva:

$ find /logs -name 'admin.log.1 -atima +7 exec rm () ;

2.2. xargs parancsot

Az -exec kapcsolóval a find parancs az összes talált fájlt átadja a megadott parancsnak, amelyek egy menetben feldolgozódnak. Sajnos egyes rendszerekben a hossz parancs sor korlátozott, ezért nagyszámú fájl feldolgozásakor hibaüzenet jelenhet meg, amely általában a következő: "Túl sok vita"(túl sok érv) ill Az érvek túl hosszúak(túl nagy érvlista). Ebben a helyzetben a xargs parancs segít. a find parancsból kapott fájlokat részletekben dolgozza fel, és nem egyszerre.

Vegyünk egy példát, ahol a find parancs a rendszer összes fájljának listáját adja vissza, az xargs parancs pedig végrehajtja rajtuk a file parancsot, amely ellenőrzi az egyes fájlok típusát:

$ find / -type f -print I xarge.file
/etc/protocols: angol szöveg /etc/securetty: ASCII szöveg

A következő példa bemutatja, hogyan kereshet olyan dump fájlokat, amelyek nevét az echo parancs elhelyezi a fájlban /tmp/core.log.

$ find / -name core -print | xarge echo > /tmp/core.log

A következő példában a könyvtárban /apps/audit megkeresi az összes fájlt, amelyhez más felhasználók teljes hozzáféréssel rendelkeznek. chmod parancsot eltávolítja az írási jogosultságukat:

$ find /appe/audit -perm -7 -print | xarge chmod o-w

A listát egy példával egészítjük ki, amelyben a grep parancs a " szót tartalmazó fájlokat keresi eszköz«:

$ find / -type f -print | xarge grep "eszköz"

2.3. Következtetés

A find parancs nagyszerű eszköz a különféle fájlok megkereséséhez különféle kritériumok alapján. Az -exec opciónak, valamint az xargs parancsnak köszönhetően a talált fájlokat szinte bármilyen rendszerparancs feldolgozhatja.

Bármilyen operációs rendszerben végzett munka közben néha szükség van eszközök használatára gyors keresés egyik vagy másik fájl. Ez a Linuxra is vonatkozik, így az alábbiakban mindenről lesz szó. lehetséges módjai fájlok keresése ebben az operációs rendszerben. Eszközként kerül bemutatásra fájl kezelő, valamint a -ban használt parancsokat "Terminál".

Ha sok keresési paramétert kell beállítania a kívánt fájl megtalálásához, akkor a parancsot megtalálja pótolhatatlan. Mielőtt az összes változatát megvizsgálnánk, érdemes végigmenni a szintaxison és az opciókon. A következő szintaxissal rendelkezik:

útvonal keresése lehetőséget

Ahol pálya az a könyvtár, amelyben a keresés megtörténik. Három fő útlehetőség van:

  • / - keresés a gyökér és a szomszédos könyvtárban;
  • ~ - keresés a kezdőkönyvtárban;
  • ./ - keresés abban a könyvtárban, amelyben a felhasználó éppen tartózkodik.

Közvetlenül megadhatja magának a könyvtárnak az elérési útját is, amelyben a fájlnak el kell helyezkednie.

Lehetőségek megtalálja nagyon sok, és nekik köszönhető, hogy megvalósítható rugalmas konfiguráció keressen a szükséges változók beállításával:

  • -név- keresést végezni a keresett elem neve alapján;
  • -felhasználó- egy adott felhasználóhoz tartozó fájlok keresése;
  • -csoport- egy adott felhasználói csoport keresése;
  • -perm- fájlok megjelenítése a megadott hozzáférési móddal;
  • -méret- keresés az objektum mérete alapján;
  • -mtime +n -n- olyan fájlok keresése, amelyek többet változtak, mint ( +n) vagy kevesebb ( -n) napja;
  • -típus- bizonyos típusú fájlok keresése.

Sokféle szükséges elem is létezik. Íme a listájuk:

  • b- Blokk;
  • f- közönséges;
  • p- nevű cső;
  • d- katalógus;
  • l- link;
  • s- aljzat;
  • c- szimbolikus.

A parancs szintaxisának és opcióinak részletes elemzése után megtalálja közvetlenül a szemléltető példákhoz ugorhat. A parancshasználati lehetőségek bősége miatt nem minden változóra adunk példát, hanem csak a leggyakrabban használt változókra.

1. módszer: Keresés név szerint (opció -név)

A felhasználók leggyakrabban a rendszerben való keresés lehetőségét használják. -név, tehát itt kezdjük. Nézzünk néhány példát.

Keresés kiterjesztéssel

Tegyük fel, hogy meg kell találnia egy kiterjesztésű fájlt ".xlsx", amely a könyvtárban található csepp doboz. Ehhez a következő parancsot kell használnia:

keresse meg a /home/user/Dropbox -name "*.xlsx" -print

Szintaxisából azt mondhatjuk, hogy a keresés a könyvtárban történik csepp doboz ("/home/user/Dropbox"), és a kívánt objektumnak a kiterjesztéssel együtt kell lennie ".xlsx". A csillag azt jelzi, hogy a keresés ennek a kiterjesztésnek az összes fájlján végrehajtódik, függetlenül azok nevétől. "-nyomtatás" azt jelzi, hogy a keresési eredmények megjelennek.

Keresés fájlnév szerint

Például egy könyvtárban szeretne keresni "/itthon" nevű fájlt "csomók", de kiterjesztése ismeretlen. Ebben az esetben a következőket kell tennie:

meg ~ -name "lumpics*" -print

Amint látja, az itt használt szimbólum «~» , ami azt jelenti, hogy a keresés a kezdőkönyvtárban történik. Opció után "-név" meg van adva a keresett fájl neve ( "csomók*"). A végén lévő csillag azt jelenti, hogy a keresés csak név szerint történik, a kiterjesztés figyelembevétele nélkül.

Keresés a név első betűje szerint

Ha csak a fájlnév első betűjére emlékszik, van egy speciális parancsszintaxis, amely segít megtalálni. Például olyan fájlt szeretne találni, amely a következő betűvel kezdődik "g" előtt "l", és nem tudja, melyik könyvtárban van. Ezután a következő parancsot kell futtatnia:

find / -name "*" -print

A közvetlenül a főparancs után megjelenő „/” karakter alapján a keresés a gyökérkönyvtárból indulva, vagyis az egész rendszerben történik. Következő rész «*» azt jelenti, hogy a keresett szó egy bizonyos betűvel kezdődik. Esetünkben től "g" előtt "l".

Egyébként, ha ismeri a fájl kiterjesztését, akkor a szimbólum után «*» megadhatod. Például meg kell találnia ugyanazt a fájlt, de tudja, hogy a kiterjesztése van ".odt". Ezután használhatja ezt a parancsot:

find / -name "*.odt" -print

2. módszer: Keresés hozzáférési mód szerint (opció -perm)

Néha meg kell találnia egy objektumot, amelynek a nevét nem ismeri, de tudja, hogy milyen hozzáférési módja van. Ezután alkalmaznia kell a lehetőséget "-perm".

Használata meglehetősen egyszerű, csak meg kell adnia a keresés helyét és a hozzáférési módot. Íme egy példa egy ilyen parancsra:

talál ~ -perm 775 -print

Ez azt jelenti, hogy a keresés az otthoni partíción történik, és a keresett objektumok hozzáférést kapnak 775 . E szám elé írhatja a "-" szimbólumot is, ekkor a talált objektumok nullától a megadott értékig jogosultsági bitekkel rendelkeznek.

3. módszer: Keresés felhasználó vagy csoport szerint (opciók -user és -group)

Minden operációs rendszernek vannak felhasználói és csoportjai. Ha olyan objektumot szeretne találni, amely e kategóriák valamelyikébe tartozik, használhatja ezt a lehetőséget "-felhasználó" vagy "-csoport", ill.

Fájl keresése a felhasználónév alapján

Például meg kell találnia a könyvtárban csepp doboz fájlt Lámpák, de nem tudod, mi a neve, csak tudod, hogy a felhasználóé "felhasználó". Ezután a következő parancsot kell futtatnia:

keresse meg a /home/user/Dropboxot -felhasználó felhasználó-nyomtatás

Ebben a parancsban megadta a szükséges könyvtárat ( /home/user/Dropbox), jelezte, hogy meg kell keresnie a felhasználó tulajdonában lévő fájlt ( -felhasználó), és jelezte, hogy melyik felhasználóhoz tartozik ez a fájl ( felhasználó).

Fájl keresése a csoport neve alapján

Egy bizonyos csoporthoz tartozó fájl keresése ugyanolyan egyszerű - csak módosítania kell a beállítást "-felhasználó" opciónként "-csoport"és adja meg ennek a csoportnak a nevét:

find / -groupe guest -print

Vagyis jelezte, hogy a rendszerben egy olyan fájlt szeretne találni, amely a csoporthoz tartozik "vendég". A keresés az egész rendszerben történik, ezt a szimbólum jelzi «/» .

4. módszer: Fájl keresése típusa szerint (opció -type)

Egy bizonyos típusú Linuxban egy bizonyos elem megtalálása meglehetősen egyszerű, csak meg kell adnia a megfelelő opciót ( -típus) és jelölje meg a típust. A cikk elején felsoroltuk az összes kereshető típusmegjelölést.

Például meg szeretné találni az összes blokkfájlt a saját könyvtárában. Ebben az esetben a parancs így fog kinézni:

meg ~ -type b -print

Ennek megfelelően jelezte, hogy fájltípus szerint keres, amit az opció is bizonyít "-típus", majd meghatározta a típusát a blokkfájl szimbólummal - "b".

Ugyanígy megjelenítheti a kívánt könyvtárban található összes könyvtárat, ha beírja a parancsba a szimbólumot "d":

keresse meg a /home/user -type d -print fájlt

5. módszer: Fájl keresése méret szerint (opció -méret)

Ha csak a méretét tudja egy fájlról, akkor még ez is elég lehet a megtalálásához. Például, ha egy 120 MB-os fájlt szeretne találni egy bizonyos könyvtárban, tegye a következőket:

keresse meg a /home/user/Dropbox -méret 120M -nyomtatását

Amint látja, megtaláltuk a szükséges fájlt. De ha nem tudja, hogy melyik könyvtárban van, kereshet a teljes rendszerben, ha megadja a gyökérkönyvtárat a parancs elején:

Find / -Size 120M -print

Ha ismeri a fájl hozzávetőleges méretét, akkor erre az esetre van egy speciális parancs. Be kell írni "Terminál" ugyanaz, de a fájlméret megadása előtt tegyen egy jelet «-» (ha a megadott méretnél kisebb fájlokat szeretne találni) ill «+» (ha a keresett fájl mérete nagyobb, mint a megadott). Íme egy példa egy ilyen parancsra:

keresse meg a /home/user/Dropbox +100M -print

6. módszer: Fájl keresése a módosítás dátuma szerint (opció -mtime)

Vannak esetek, amikor a legjobb, ha a módosítás dátuma alapján keres egy fájlt. Linuxon ez az opcióval történik "-mtime". Használata meglehetősen egyszerű, nézzünk meg mindent egy példával.

Mondjuk egy mappában "Képek" meg kell találnunk az elmúlt 15 napban módosított objektumokat. Íme, mit kell beleírni "Terminál":

keresse meg a /home/user/Images -mtime -15 -print

Amint láthatja, ez az opció nem csak a megadott időszak alatt megváltozott fájlokat jeleníti meg, hanem a mappákat is. Ellenkező irányban is működik - olyan objektumokat találhat, amelyeket a megadott időszak után módosítottak. Ehhez egy jelet kell beírni a digitális érték elé «+» :

keresse meg a /home/user/Images -mtime +10 -print

GUI

A grafikus felület nagyban megkönnyíti a kezdők életét, akik most telepítették Linux disztribúció. Ez a módszer A keresés nagyon hasonlít a Windows kereséséhez, bár nem biztos, hogy biztosítja az összes előnyt "Terminál". De először a dolgok. Tehát nézzük meg, hogyan lehet fájlkeresést végezni Linux alatt GUI rendszerek.

1. módszer: Keresés a rendszermenüben

Most megvizsgáljuk a fájlok keresésének módját a Linux rendszermenüjén keresztül. A lépéseket az Ubuntu 16.04 LTS disztribúcióban hajtják végre, de az utasítások mindenki számára közösek.

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.

1) Sorolja fel az összes fájlt az aktuális könyvtárban és annak alkönyvtáraiban

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.

2) Keresse meg az összes fájlt és könyvtárat az aktuális munkakönyvtárában

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

3) Sorolja fel az összes fájlt egy adott könyvtárban

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.

4) Keresse meg a fájlt név szerint a 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"

5) Keresse meg a fájlt több könyvtárban

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.

6) Keresse meg a fájlt név szerint, a kis- és nagybetűk megkülönböztetése nélkül

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.

7) Keresse meg az összes fájltípust, kivéve az említett típust

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"

8) Fájlok keresése számos funkció alapján

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\)$"

9) Keressen fájlokat a VAGY feltétel használatával

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*"

10) Fájlok keresése az engedélyek alapján

Adott engedélyekkel rendelkező fájlok kereséséhez használja a -perm parancsot:

$ find /root -type f -perm 0777

11) Keresse meg az összes rejtett fájlt

A kereséshez rejtett fájlok a könyvtárba írja be:

$ keresés ~ -type f név ".*"

12) Keresse meg az összes SGID fájlt

Az SGID bitekkel rendelkező fájlok kereséséhez futtassa a következő parancsot:

$ találni. -perm /g=s

13) Keresse meg az összes SUID fájlt

A SUID bitekkel rendelkező fájlok kereséséhez használja:

$ találni. -perm /u=s

14) Keresse meg az összes végrehajtható fájlt

Csak keresésre futtatható fájlok belép:

$ találni. -perm /a=x

15) Keressen csak olvasható fájlokat

Ezenkívül a find paranccsal csak olvasható fájlokat találhat:

$ find /root -perm /u=r

16) Keresse meg az összes felhasználói fájlt

Ha egy adott felhasználóhoz szeretne fájlokat keresni, használja a következő parancsot:

$ találni. - linuxtech felhasználó

17) Keresse meg az összes csoportfájlt

Egy adott csoporthoz tartozó fájlok kereséséhez használja:

$ találni. -csoportos apache

18) Keresse meg az összes fájlt egy bizonyos méretű

Ha azt szeretnénk keresni, hogy kinek a méretét ismerjük, akkor használhatjuk a -size-t:

$ find / -size -2M

19) Keresse meg az összes fájlt különböző méretekben

Ha olyan fájlt keresünk, aminek 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

20) Keresse meg az N nappal ezelőtt módosított fájlokat

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

21) Keresse meg az N nappal ezelőtt elért fájlokat

Megtalálhatja azokat a fájlokat, amelyek 8 nappal ezelőtt szerepeltek az -atime-val:

$ find / -atime 8

22) Keresse meg az összes üres fájlt és könyvtárat

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:

$ find ~/ -type d -empty

23) Keresse meg a legnagyobb és legkisebb fájlokat

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 "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

24) Keresse meg az összes fájlt, amely rendelkezik adott engedéllyel, és módosítsa 644-re (vagy valami másra)

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 () \;

25) Keresse meg az összes fájlt, amely megfelel bizonyos feltételeknek, és törölje őket

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.

A fájlok keresésének szükségessége szinte minden operációs rendszerben felmerülhet, amely lehetővé teszi a munkát fájlrendszer. A klasszikus példa számunkra az operációs rendszer Linux, amelyet konzol módban fogunk használni. Nézzük meg a fájlok konzolon keresztüli keresésének lehetőségeit a rendszerben. Fájlok kereséséhez Linux rendszeren van egy find parancs, amely meglehetősen rugalmas keresést tesz lehetővé, lehetővé téve további keresési feltételek megadását. Tekintsük részletesebben ennek a parancsnak a képességeit.

Parancs szintaxis keresése:

Az elérési út -opciók keresése

Az elérési út megadja azt a könyvtárat, amelyben keresni kell. Például ezek lehetnek a következő értékek:
. - aktuális könyvtár
/ - gyökérkönyvtár
~ - kezdőkönyvtár

Az elérési út megadása után így kerülnek megadásra a keresési lehetőségek. Zavarba ejtőnek tűnik, de valójában nincsenek nehézségek.

Fő lehetőségek:
-név- név szerinti keresés, keresési minta beállítva;
-felhasználó- egy adott felhasználóhoz tartozó fájlok keresése;
-csoport- meghatározott csoporthoz tartozó fájlok keresése;
-perm- fájlok keresése hozzáférési mód szerint;
-típus- fájlok keresése típus, típuslista szerint:

  • b- speciális blokkfájl;
  • d- katalógus;
  • c- speciális karakterfájl;
  • f- normál fájl;
  • l- szimbolikus link;
  • p- nevű cső;
  • s- aljzat.

-méret- n egység méretű fájlok keresése;
-mtime -n +n- Fájlok keresése a módosítás dátuma szerint, kevesebb (-) vagy több (+) nappal ezelőtt.

Próbáljunk meg fájlokat keresni, különféle helyzeteket szimulálva.
Keressük meg a fájlokat egy USB-hez csatlakoztatott és a rendszerbe előre beépített cserélhető eszközön.

Fájlok keresése kiterjesztés szerint:

$ keresse meg a /mnt/usb -name "*.mp3" -print

Ez a parancs keresni fogja a könyvtárat /mnt/usb az a könyvtár, ahová az eszköz fel van szerelve. A keresés az összes (*) kiterjesztésű fájlon végrehajtódik .mp3.
A keresési maszk meglehetősen rugalmasan módosítható, például beállíthatunk egy kulcsszót, amellyel a fájlnév kezdődik, és rákereshetünk.

Fájlok keresése kezdő kulcsszó szerint:

$ find ~ -name "config*" --print

Ez megjeleníti a talált fájlok listáját, kezdve a kulcsszó config.
A parancs egyik erőssége a reguláris kifejezések szerinti keresés lehetősége. A bemutatáshoz keressünk a következővel kezdődő fájlokat Latin betűk"a"-tól "j"-ig.

Fájlok keresése minta szerint reguláris kifejezés:

$ find / -name "*" --print

A megadott minta szerint a rendszer minden fájlját keresni fogja, amelyek "a" és "j" betűkkel kezdődnek.

Aki többé-kevésbé ismeri a Linux rendszereket, tudja, hogy a fájlelérési módok nagyon fontosak. Néha olyan fájlokat kell találnia, amelyeknek meghatározott engedélyei vannak, erre a célra használhatja a keresést az opcióval -perm.

Fájlok keresése 755-ös hozzáférési móddal:

$ találni. -perm 775 --print

Ugyanígy rugalmasabb keresést is végezhet. Keressük meg felhasználói csoportonként azokat a fájlokat, amelyek teljes hozzáféréssel rendelkeznek.

Egy csoporthoz engedéllyel rendelkező fájlok keresése:

$ találni. -perm -070 --print

A kötőjel helyettesíthető pluszjellel, ez azokat a fájlokat keresi, amelyeknek legalább egy adott engedélybitje be van állítva, a többi bitet figyelmen kívül hagyja.

A következő példában fontolja meg egy adott felhasználó vagy csoport tulajdonában lévő fájlok keresését.

Egy adott felhasználó fájljainak keresése:

$ find / -user admin --print

A keresés megkeresi a felhasználó tulajdonában lévő fájlokat admin.

Adott felhasználói csoporthoz tartozó fájlok keresése:

$ find / -group bots --print

A rendszer megtalálja a felhasználói csoporthoz tartozó fájlokat botok. Ezenkívül kereshet nem létező felhasználók vagy csoportok tulajdonában lévő fájlok között:

$ find / -nouser –print $ find / -nogroup –print

A bizonyos típusú fájlok keresésének képessége szintén fontos funkció. Például, ha meg kell találni az összes szimbolikus hivatkozást egy adott könyvtárban.

Szimbolikus linkek keresése:

$ find /etc -type l --print

A keresés a /etc könyvtárban történik, amelyben az összes szimbolikus hivatkozás ki lesz jelölve.

Néha meg kell tekinteni a beágyazott könyvtárak listáját bármelyik könyvtárban, az ilyen feladatokhoz a következő parancs található.

Beágyazott könyvtárak megtekintése egy könyvtárban:

$ talál /mnt/usb -type d --print

A képernyőn megjelenik a könyvtárban található könyvtárak listája. /mnt/usb. Most térjünk át a következő lehetőségre, ez a beállított méretű fájlok keresésének lehetősége.

Fájlok keresése méret szerint:

$ találni. -méret 2000k --nyomtatás

A 2000 kilobájt méretű fájlok keresése történik, a méretek megabájtban is megadhatók, ehhez a „k” betű helyett az „M” betűt kell feltüntetni.

Következő példaként a fájlok módosítási idejük szerinti keresésének lehetőségét fogjuk használni. Erre a célra az opciót fogjuk használni -mtime.

Az elmúlt 2 napban módosított fájlok keresése:

$ find /var/www/html -mtime +2 --print

A keresés a könyvtárban történik /var/www/html, és az elmúlt 2 napban megváltozott fájlok keresése történik. Talán az egyik legfontosabb és legkényelmesebb keresési lehetőség. A módosítás dátuma szerint is kereshet fordított állapot. Próbáljunk meg olyan fájlokat keresni egy olyan könyvtárban, amelyek 5 napja nem változtak.

Olyan fájlok keresése, amelyek 5 napja nem változtak:

$ find /var/www/html -5 --print

Egyelőre ennyi, remélem, ezek a példák segítettek kezelni ezt a parancsot. Kényelme egyértelműen bemutatásra kerül, és nem lesz felesleges tudni a képességeiről, különösen, ha dolgozni fog Linux rendszer. A hozzáértő fájlkeresés készségei személyes időt takarítanak meg, és mint tudod, az idő megfizethetetlen. Sikereket a munkában!

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: