Hogyan lehet megtalálni a Command parancsot Linux rendszeren? 40 Példa mellékelve

A keresés egy hatékony parancssori eszköz, amely lehetővé teszi a rendszergazdák számára a fájlok és könyvtárak megtalálását és kezelését a keresési feltételek széles skálája alapján. Megtalálja a fájlokat név, típusuk vagy kiterjesztésük, méret, engedélyek stb. Alapján.


A fájlok és könyvtárak megkeresése mellett a find parancs másokkal történő kombinálása lehetővé teszi az eredmények végrehajtását. A -exec opció hozzáadásával a rendszergazdák külső parancsokat futtathatnak és olyan műveleteket hajthatnak végre, mint például a megadott kritériumoknak megfelelő fájlok másolása, áthelyezése, törlése vagy megváltoztatása, például a méret, név stb..

Ebben a cikkben kezdjük az alapvető keresési parancsok példákkal történő magyarázatával. Ez megmutatja, hogyan lehet fájlokat és könyvtárakat megtalálni. Ezután megmutatjuk, hogyan lehet a -exec opciót használni a fájlok vagy könyvtárak méretük, engedélyek stb. Alapján.

A find parancs általános szintaxisa

keressen {elérési út} {fájl-fájl neve vagy keresési-keresés} {cselekvési művelet}

Ahol,

  • Az útvonal meghatározza a könyvtárat.
  • fájlnév vagy keresendő keresés: A keresendő fájl vagy könyvtár neve
  • teendő: például másolás, törlés, áthelyezés stb.

Ebben az oktatóanyagban elmagyarázza, hogyan lehet a megadott mintáknak megfelelő fájlokat és könyvtárakat megtalálni. Azt is meglátjuk, hogyan hajthatunk végre műveleteket azokon a fájlokon vagy könyvtárakon, amelyeket a find parancs megtalál. Az útmutató az Ubuntu-n alapul, de a legtöbb Linux disztribúcióra és verzióra alkalmazható.

Contents

Keressen fájlokat és könyvtárakat

Adott fájlok keresése név vagy kiterjesztés szerint

Egy adott fájl kereséséhez futtassa a következő parancsot a gyökérből (/). A parancs tartalmazza a keresett fájl pontos nevét.

megtalálja . -name fájl22.txt

Kimenet

./test/file22.txt
./sales/file22.txt

Felhívjuk figyelmét, hogy az eredmények tartalmazzák az utat. Ez akkor fontos, ha nem ismeri a könyvtárat, ahol a fájl található, vagy ha egynél több helyen található.

A fájlt egy másik könyvtárban is keresheti, miközben továbbra is az aktuális helyen található. Ebben az esetben meg kell adnia annak a könyvtárnak az elérési útját, amelyben keresni kívánja.

find ./test -name file22.txt

Konkrét fájlok keresése egy másik könyvtárban

Esetünkben mindazokat fogjuk keresni, amelyek betűfájllal kezdődnek a teszt könyvtárban.

keresés ./test -name fájl *

Kimenet

./test/file22.txt
./test/file30.doc
./test/file1.txt
./ Test / file5, doc

Fájlok keresése kiterjesztés szerint

Adott kiterjesztéssel rendelkező fájlok kereséséhez adja hozzá azokat a parancshoz.

megtalálja . -név * .txt

Kimenet

./test/subtest/subfil.txt
./test/file22.txt
./test/file1.txt
./home1/files32.txt
./home2/file22.txt
./qa/tags.txt

Keressen fájlokat és könyvtárakat név szerint

Az alábbi parancs segítségével keressen olyan fájlokat és könyvtárakat, amelyek qa betűkkel kezdődnek. A számítógépünkben vannak a qatree.txt és a qa.txt fájlok, valamint a qa névvel ellátott könyvtár.

Ha futtatjuk a parancsot;

talál ./-név "qa *"

A következő kimenetet adja vissza

./test/qatree.pdf
./test/qa.txt
./ Home / qa

A parancs a keresési feltételeknek megfelelő fájlokat és könyvtárakat ad vissza. Csak fájlok vagy könyvtárak megtalálásához ezt meg kell adnia a parancsban.

Csak fájlokat vagy könyvtárakat találhat

Csak fájlok esetén használja az f típusú kapcsolót.

Csak fájlok

find ./-type f -name "qa *"

Kimenet

./test/qatree.pdf
./test/qa.txt

Csak könyvtárak

Adja hozzá a d típusú opciót, ha csak könyvtárakat szeretne megtalálni.

find ./-type d -name "qa *"

Kimenet

./ Home / qa

A kis- és nagybetűk között érzéketlen keresési parancs

Minden névnév-kapcsolóval a kis- és nagybetűk érzékenyek, és nagybetűkkel nem eredményeznek. Az összes eset beolvasásához használja a -iname opciót.

talál ./ -iname "qa *"

Kimenet

./test/qatree.pdf
./test/qa.txt
./test/QAtest.txt
./ Home / qa

Fájlt kereshet több könyvtárból

A különféle könyvtárakban található fájlok megtalálásához adja hozzá azok elérési útját a parancsba. Esetünkben ellenőrizni fogjuk a teszt és a numerikus könyvtárakat.

find ./test ./numeric -name file22.txt-type f

Kimenet

./test/file22.txt
/root/numeric/file22.txt

Keressen több fájlt, különféle kiterjesztésekkel az összes könyvtárból

A find paranccsal több fájlt is megkereshet, amelyek megosztják a különféle kiterjesztéseket, például * .doc, * .txt * .pdf stb. Ezt külön lehet megtenni, egyszerre egy kiterjesztést, vagy csak egy parancs használatával, amely tartalmazza az összes a kívánt kiterjesztések.

megtalálja . f típusú (- név "* .txt" -o -név "* .pdf" -o -név "* .doc" )

Kimenet

./test/subtest/subfil.txt
./test/qatree.pdf
./test/file22.txt
./test/qa.txt
./test/file30.doc
./books/acro.pdf
./data1/FILE22.txt
./docs/files32.txt

Bizonyos szöveget tartalmazó fájlok keresése

Időnként bizonyos szöveget tartalmazó fájlt szeretne elérni, de nem tudja előidézni a fájl nevét vagy helyét. Ez a parancs lehetővé teszi a célszöveget tartalmazó összes fájl megtalálását.

Az összes olyan fájl kereséséhez, amely tartalmazza a hiperkonvergencia szót ”, használja;

find /-type f -exec grep -l -i "hyperconvergence" {};

Kimenet

/ Root / numerikus / HCl
/ Root / HCIP

A –i opció lehetővé teszi a parancsnak az esetek figyelmen kívül hagyását, és meg fogja találni a szöveget nagybetűvel vagy sem, azaz hiperkonvergencia, hiperkonvergencia stb..

Egy adott könyvtárban található fájlok kereséséhez egyszerűen adja hozzá a parancshoz

find ./numeric-type f -exec grep -l -i "hyperconvergence" {};

Kimenet

./ Numerikus / HCl

Keressen fájlokat és könyvtárakat méret alapján

Megtalálhatja az összes olyan fájlt vagy könyvtárat, amelyek kisebbek, egyenlők vagy nagyobbak, mint egy bizonyos méret, bizonyos tartományon belül vagy üresek. Használja a megfelelő méretű formátumot a keresett fájlok vagy könyvtárak típusától függően.

A méretbeállítások között szerepel;

c – bájt

k – kilobájt

M – Megabájt

G – Gigabájt

Keressen egy bizonyos méretű – 30 MB méretű – fájlokat

Kereséshez keresse meg az összes 30 MB fájlt

30M keresés / méret

Keressen egy megadott méretnél nagyobb fájlokat

find -size + 2M

Kimenet

. /Downloads/ubuntu18043.iso
./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Keressen 10 MB-nál kevesebb fájlokat az aktuális könyvtárban

megtalálja . f-méretű -10M

Keressen 100-200 MB méretű fájlokat

Ha egy meghatározott tartományon, például 100 és 200 MB közötti fájlokat keres

find / -size + 100M -size -200M

Keressen 20 kb-nál nagyobb könyvtárakat

keresés / típusú d-méret + 20k

Keressen üres fájlokat és könyvtárakat.

Files

find ./ típusú f-méret 0

vagy

találni ./-típusú f – nem megfelelő

Könyvtárak

találni ./-típusú d-nélküli

Keressen fájlokat életkor vagy módosítási idő szerint

Keressen n naposnál régebbi fájlokat

find / elérési út / -típus f-név ‘* .txt’ -idő +8

A -mtime +8 8 napnál régebbi txt fájlokat fog keresni.

Módosítási dátum szerint

Ez az elmúlt 17 órában módosított fájlokat fogja keresni

megtalálja . -mtime -17-type f

Az utóbbi 10 napban módosított könyvtárakat keresi

megtalálja . -idő -10-típusú d

Keressen fájlokat hozzáférés vagy módosítás alapján

Keressen fájlokat a hozzáférés dátuma vagy ideje alapján. Ez lehetővé teszi azoknak a fájloknak a megtekintését, amelyekhez megadott időn belül hozzáfértek vagy nem fértek hozzá.

Azoknak a fájloknak a megtekintéséhez, amelyeket az elmúlt 10 napban nem sikerült elérni a saját könyvtárban.

keresés / otthoni munkaidő +10

Pontosan 10 nappal ezelőtt hozzáfértek a fájlok

keresés / otthoni idő 10

Érkezés az elmúlt 10 napban

talál / otthon-időben -10

Keressen az elmúlt n napban módosított fájlokat

A parancs segítségével az / home könyvtárban az utóbbi 10 napban módosított fájlokat is megkeresheti;

keresés / otthon-idő -10

Keressen egy megadott időszakon belül módosított fájlokat.

Például az összes fájl, amely 6 és 15 nappal ezelőtt módosult a saját könyvtárban.

keresési / otthoni típusú f-idő +6-idő -15

Az elmúlt 10 percben elérhető fájlok és könyvtárak

Az elmúlt 10 percben elérhető fájlok megtalálásához használja az -amin opciót.

megtalálja . -amin -10-típusú f

Kimenet

./.bash_history
./[Email protected]: ~ #

Az utóbbi 10 percben elérhető könyvtárak

megtalálja . -amin -10-típusú d

Megtalálja a megadott engedélyeknek megfelelő fájlokat

Szintaxis

$ find -perm mód

Ahol az üzemmód az engedély, amely vagy numerikus, például 644, 655, 700, 777 stb., Vagy betűk, például u = x, a = r + x stb..

Az üzemmódot a következő háromféle módon határozhatja meg.

  1. Előtag nélkül, ha a megadott pontos engedélyekkel rendelkező fájlokat szeretne megtalálni.
  2. A „-” gombbal legalább a megadott engedéllyel rendelkező fájlok esetén. Ezzel visszatér a megadott és további magasabb engedélyekkel rendelkező fájlok.
  3. A „/” használatához meg kell adni a tulajdonosot vagy a csoportot a fájl engedélyével.

Fájlok keresése a 777 engedéllyel

find -perm 777

Kimenet

./ fájl1

Keressen legalább 766 fájlt tartalmazó fájlokat
talál-perm -766

Kimenet

./ fájl2
./ fájl1

A parancs megkeresi az összes fájlt, amelyben a

  • A fájltulajdonos olvasási / írási / végrehajtási engedélyeket kapott.
  • A csoport olvasási / írási jogosultságokkal rendelkezik
  • Mások olvasási / írási engedélyt kaptak

Mint ilyen, két fájlt ad vissza, amelyek megfelelnek ennek a kritériumnak – a file1 és a file2. A fájloknak nem kell a pontos 766 engedélyekkel rendelkezniük, és további fájlokkal is rendelkezhetnek, de legalább a megadottnak kell lennie.

Keresse meg a tulajdonos által írható fájlokat

Most a „/” gombokat használjuk, hogy megkeressük azokat a fájlokat, amelyeket a tulajdonos, a csoport vagy mások írhatnak.

find -perm / 222
.
./ fájl2
./ file3
./ fájl1

A fenti fájlok olyan fájlokat keresnek, amelyeket a tulajdonosok vagy a csoportok írhatnak.
Ez visszaadja azokat a fájlokat, amelyek bármelyike ​​írható, de nem feltétlenül mindkettő. A – előtaggal megtekintheti azokat a fájlokat, amelyekben mindkettő írható jogosultsággal rendelkezik.

talál-perm -220

Kimenet

./ fájl2
./ fájl1

Keressen egy felhasználó tulajdonában lévő fájlokat

Keresse meg az összes Jack tulajdonában lévő fájlt

find / home -user jack

Kimenet

/ Home / jack
/home/jack/examples.desktop
/home/jack/.gnupg
/home/jack/.gnupg/private-keys-v1.d
/home/jack/ans.cgi

Keresse meg a felhasználó tulajdonában lévő konkrét fájlokat

Keresse meg a Jack tulajdonában lévő összes szöveges fájlt

find / home -user jack -iname "* .txt"

Kimenet

/home/jack/docs/file32.txt

Keressen és listázhasson fájlokat és könyvtárakat az engedélyükkel együtt

talál-név "* .conf" | ls-l

Kimenet

összesen 120
drwxr-xr-x 2 gyökérgyökér 4096 december 31 13:19 backup2
drwxr-xr-x 2 gyökérgyökér 4096 január 4 11:57 Asztal
drwxr-xr-x 2 gyökérgyökér 4096 december 31 11:50 Dokumentumok
drwxr-xr-x 2 gyökérgyökér 4096 december 31 12:27 Letöltések
-rw-r – r– 1 gyökérzet 0 január 4, 12:02 file22.doc
drwxr-xr-x 2 gyökérgyökér 4096 január 4, 12:14 file23
-rw-r – r– 1 gyökérzet 0 január 4, 12:23 file23.txt

Keresse meg az eredményeket, és cselekedjen azok alapján

Ebben a szakaszban megvizsgáljuk, hogyan lehet viselkedni azoknál a fájloknál, amelyek megfelelnek a find parancsban megadott mintának.

Fájlok keresése és engedélyek módosítása

Bizonyos fájltípusok engedélyének megkeresése és módosítása. Esetünkben különféle engedélyekkel rendelkező PHP fájlokkal fogunk dolgozni, amint az alább látható.

[Email protected]: ~ / ver $ ls -la

összesen 8
drwxrwxr-x 2 jack jack 4096 január 3, 14:11 .
drwxr-xr-x 8 jack jack 4096 január 3, 14:05 ..
-rwxr-xr-x 1 jack jack 0 január 3, 14:06 ans.php
-rw-rw-r– 1 jack jack 0 január 3, 14:11 base.php
-rwxr-xr-x 1 jack jack 0 január 3, 14:06 query.php
-rw-rw-r– 1 jack jack 0 január 3, 14:11 qust.php
-rwxr-xr-x 1 jack jack 0 január 3, 14:06 text.php
-rw-rw-r– 1 jack jack 0 január 3, 14:11 vary.php

Most megvizsgáljuk az összes PHP fájlt (fent), és helyettesítjük azok engedélyét 755 fájllal

megtalálja ver -name "* .php" -f -exec chmod 755 {} típus;

A parancs megkeresi a PHP fájlokat a ver könyvtárban, majd engedélyét 755-re állítja (rwxr-xr-x)

Eredmények

[Email protected]: ~ / ver $ ls -la
összesen 8
drwxrwxr-x 2 jack jack 4096 január 3, 14:11 .
drwxr-xr-x 8 jack jack 4096 január 3, 14:05 ..
-rwxr-xr-x 1 jack jack 0 január 3, 14:06 ans.php
-rwxr-xr-x 1 jack jack 0 január 3, 14:11 base.php
-rwxr-xr-x 1 jack jack 0 január 3, 14:06 query.php
-rwxr-xr-x 1 jack jack 0 január 3, 14:11 qust.php
-rwxr-xr-x 1 jack jack 0 január 3, 14:06 text.php
-rwxr-xr-x 1 jack jack 0 január 3, 14:11 vary.php

Keresse meg és módosítsa a fájl- és könyvtári engedélyeket

Keresse meg a 644 engedélyekkel rendelkező fájlokat, és módosítsa azokat 655 engedélyekre

megtalálja . f típusú 644 -exec chmod 655 {};

A 644 engedélyekkel rendelkező könyvtárakat is megkeresheti, és ezeket helyettesítheti a 755-öskel.

megtalálja . d-perm típusú 644

Kimenet

./ docs

A docs mappának 644 engedély van

drwxrwxr-x 2 jack jack 4096 január 3, 12:45 docs

Ahhoz, hogy 755-re állítsuk, futunk

megtalálja . d-perm típusú 644 -exec chmod 755 {};

Most megismételhetjük, hogy pontosan mi a 755

megtalálja . d típusú 755 típusú

Kimenet
.
./ docs

Felülről láthatjuk, hogy a root és a docs könyvtárak 755 jogosultsággal rendelkeznek.

Ls –la parancs a következő részleteket tartalmazza

drwxr-xr-x 2 jack jack 4096 január 3, 12:45 docs

Fájlok vagy könyvtárak keresése és másolása

Adott fájl keresése és másolása egy könyvtárba

Az alábbi parancs megkeresi a file22.txt fájlt, és átmásolja a ~ / tmp / images könyvtárba.

find -iname file22.txt -exec cp {} ~ / tmp / images;

Egy fájltípus keresése és másolása egy könyvtárba

Fájlok, például a jpg kiterjesztéssel rendelkező fájlok, az aktuális könyvtárban történő megkereséséhez és más helyre másolásához, például egy képmappához, használja a;

find -iname ‘* .jpg’ -exec cp {} ~ / tmp / images;

Ez megkeresi és átmásolja az összes JPG fájlt a ~ / tmp / images mappába.

Keressen és másoljon egy fájlt sok könyvtárba

Keressen és másoljon egy könyvtárat több könyvtárba.

talál ~ / tmp / dir1 / ~ / tmp / dir2 / $ HOME / 3 / -maxdepth 0 -exec cp ~ / numeric / hci {};

Ez megtalálja a hci fájlt, és átmásolja a / tmp / dir1 / / tmp / dir2 / és a $ HOME / 3 / három könyvtárba.

Fájlok keresése és áthelyezése egy másik könyvtárba

Egy ismert fájl áthelyezése egy könyvtárból a másikba. Az universal.php fájl áthelyezése;

keresse ~ / mappa / -típus f-név universal.php -exec mv {} ~ / numeric /;

Keressen és helyezze át a fájlokat egy bizonyos kiterjesztéssel egy másik mappába

keresse ~ / numerikus / típusú f-nevet ‘* .php’ -exec mv {} ~ / mappa /;

Keressen bizonyos fájlokat, és lépjen egy adott másik mappába

find-type f -name uni *. * -exec mv {} ~ / egyenruhák /;

A parancs megkeresi az összes fájlt, amelynek neve neve uni betűvel kezdődik és bármilyen kiterjesztéssel rendelkezik. Ezután áthelyezi őket a könyvtárba / unifiles /

Keressen és helyezze át a fájlokat életkor alapján

Keresse meg és helyezze át a meghatározott napnál régebbi fájlokat egy másik helyre, például az archívumba.

find / elérési út / típusú f-név ‘* .pdf’ -idő +20 -exec mv {} / backup1 /;

Ez megkeresi a 20 napnál régebbi pdf fájlokat, és áthelyezi azokat a backup1 könyvtárba.

Fájlok és könyvtárak keresése és törlése

Az aktuális könyvtárban található fájlok vagy könyvtárak keresésének és eltávolításának szintaxisa:

megtalálja . f típusú név "törölni kívánt fájlt" -exec rm -f {}; csak fájlok törléséhez vagy

megtalálja . -típus d-név "dir-to-delete" -exec rm -rf {}; csak a könyvtárak törléséhez

Csak meghatározott fájlok keresése és törlése

A til kezdetű fájlok megkereséséhez és törléséhez használja a;

megtalálja . f típusú név "til *" -exec rm {};

A til-vel kezdődő könyvtárak keresése és törlése

megtalálja . -típus d-név "til *" -exec rm {};

Távolítsa el a fájlokat és a könyvtárakat is

megtalálja . -név "til *" -exec rm -rf {};

Ezzel eltávolítja a fájlokat és a könyvtárakat a til betűkkel kezdve.

Törlés kiterjesztés szerint

Az alábbiakban bemutathatja, hogyan lehet megtalálni és törölni az összes txt fájlt az aktuális könyvtárban. Cserélje ki a txt-et egy másik kiterjesztésre, például bak, pdf vagy más eltávolítandó kiterjesztésre.

megtalálja . f típusú név "* .txt" -exec rm -f {};

Ha azt akarja, hogy a rendszer minden fájl törlése előtt kérje meg megerősítését, add hozzá a -i opciót az alábbiak szerint.

megtalálja . f típusú név "* .txt" -exec rm -i {};

Kimenet

rm: távolítsa el a normál ‘./File22.txt’ üres fájlt? y
rm: távolítsa el a normál üres “./file22.txt” fájlt? y
rm: távolítsa el a normál üres fájlt ‘./file23.txt’?

Alapértelmezés szerint az -rm nem távolítja el a könyvtárakat, és a –r opciót kell használnia a rekurzív eltávolítás biztosításához. Ez biztosítja az üres és a fájlokat tartalmazó könyvtárak törlését. A -f opció kényszeríti az eltávolítást, és mind a fájlok, mind a könyvtárak számára használható.

N napnál régebbi fájlok keresése és törlése

Keressen és töröljön 20 napnál régebbi biztonsági mentési fájlokat az aktuális könyvtárból.

megtalálja . f-név ‘* .bak’ -idő +20 -exec rm {};

Ezzel törli az összes, 20 napnál régebbi .bak fájlt.

Csak könyvtárak keresése és törlése

A dir22 nevű könyvtár törlése

megtalálja . d-név dir22 -exec rm -rf {};

Győződjön meg arról, hogy megegyezik a könyvtárnév kisbetűjével, vagy használja a -iname opciót.

megtalálja . d -inamik típusú Dir22 -exec rm -rf {};

Eltávolítja mind a Dir22, mind a dir22 fájlt

A törlés előtti megerősítéshez használja a -i opciót.

megtalálja . d -inamik típusú Dir22 -exec rm -rf -i {};

Kimenet
rm: eltávolítja a ‘./Dir22’ könyvtárat? n
rm: eltávolítja a ‘./dir22’ könyvtárat? y

Esetünkben az n gépelést írtunk a Dir22 könyvtárra, amelyet nem törölnek, és y az a dir22-re, amelyet most eltávolítunk.

Keresse meg és távolítsa el az üres fájlokat

A következő parancsok bármelyikével az üres fájlokat megkeresheti és automatikusan törölheti.

find ./-type f -size 0 -exec rm -f {};

vagy
találni ./-típusú f-méret 0 | xargs rm -f
vagy
find ./ típusú f-méret 0 – törölni

Keresse meg és távolítsa el az üres könyvtárakat

Az üres könyvtárak eltávolításához a d opciót használjuk.

find ./-type d -empty -exec rmdir {};

Egy másik alternatíva a törlés használata az eltávolítás helyett.

find ./-type d -empty -delete

Felhívjuk figyelmét, hogy a rendszer- vagy kritikus fájlok törlése a számítógépről károsíthatja az operációs rendszert vagy az alkalmazásokat, vagy elvesztheti a fontos adatokat.

A véletlen törlések elkerülése érdekében a legjobb gyakorlat egy nem root felhasználói fiók használata. Ezenkívül győződjön meg arról, hogy törli a nem hasznos megfelelő fájlokat, és minden esetre biztonsági másolatot készít minden adatfájljáról..

Mi a következő lépés?

Próbáld ki őket laboratóriumi vagy NON PRODUCTION környezetben. Nézze meg, lehet-e valamivel felhasználni a fájlrendszer-tisztítás automatizálására a Crontab segítségével. És a Linux elsajátításához ellenőrizze ezt online tanfolyam.

CÍMKÉK:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map