40 legjobb példa a Find parancs Linux

A Linux find parancs egy hatékony eszköz, amely lehetővé teszi a rendszergazdák, hogy keresse meg és kezelje a fájlokat és könyvtárakat széles körű keresési kritériumok alapján. Könyvtárakat, fájlokat talál a nevük, típusuk vagy kiterjesztésük, méretük, engedélyeik stb.

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 kezelését., A -exec opció hozzáadása lehetővé teszi a sysadmins számára, hogy külső parancsokat futtasson, és olyan műveleteket hajtson végre, mint a megadott kritériumoknak megfelelő fájlok másolása, mozgatása, törlése vagy módosítása, például méret, Név stb.

ebben a cikkben az alapvető Linux find parancsok példákkal történő magyarázatával kezdjük. Ez megmutatja, hogyan kell megtalálni a fájlokat, könyvtárakat. Ezután megmutatjuk, hogyan kell használni a-exec opciót a fájlok vagy könyvtárak méretük, engedélyeik stb.,

A find parancs általános szintaxisa

find {path} {name -of-file or dir-to-search} {action-to-take}

ahol,

ebben a bemutatóban elmagyarázzuk, hogyan lehet megtalálni a megadott mintáknak megfelelő fájlokat és könyvtárakat. Azt is látni fogjuk, hogyan hajthatunk végre műveleteket a find parancs által megkeresett fájlokon vagy könyvtárakon. Az útmutató alapja az Ubuntu, de alkalmazható a legtöbb Linux disztribúciók, verziók.

fájlok és könyvtárak keresése

meghatározott fájlok keresése név vagy kiterjesztés alapján

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.

find . -name file22.txt

kimenet

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

kérjük, vegye figyelembe, hogy az eredmények tartalmazzák az elérési utat. Ez akkor fontos, ha nem ismeri azt a könyvtárat, ahol a fájl található, vagy ha egynél több helyen van.

a fájlt egy másik könyvtárban is keresheti, miközben még mindig az aktuális helyen van. Ebben az esetben meg kell adnia a keresendő könyvtár elérési útját.,

find ./test -name file22.txt

speciális fájlok keresése egy másik könyvtárban

esetünkben mindazokat keressük, akik a tesztkönyvtár betűfájljával kezdődnek.

find ./test -name file*

kimenet

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

fájlok keresése a

kiterjesztéssel egy bizonyos kiterjesztésű fájl megtalálásához adja hozzá a parancshoz.,

find . -name *.txt

kimenet

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

fájlok és könyvtárak keresése név szerint

az alábbi paranccsal megkeresheti a qabetűkkel kezdődő fájlokat és könyvtárakat. Számítógépünkben a qatree.txt és qa.txt fájlok, valamint a qanevű könyvtár található.,

ha futtatjuk a parancsot;

find ./ -name "qa*"

visszaadja a következő kimenetet

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

a parancs mind a keresési feltételeknek megfelelő fájlokat, mind könyvtárakat visszaadja. Csak fájlok vagy könyvtárak kereséséhez ezt meg kell adnia a parancsban.

csak fájlok vagy könyvtárak keresése

csak fájlok esetén használja a type f kapcsolót.

Csak fájlok

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

kimenet

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

könyvtárak csak

Add hozzá a type d opciót a könyvtárak megkereséséhez.,

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

Output

./home/qa

case érzéketlen find command

minden keresés -name switch eset érzékeny, és nem ad eredményt nagybetűvel. Minden esethez használja a -iname opciót.

find ./ -iname "qa*"

kimenet

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

fájl keresése több könyvtárból

a fájlok különböző könyvtárakban való megtalálásához adja hozzá útvonalait a parancshoz., Esetünkben a test és numeric könyvtárakat ellenőrizzük.

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

Kimenet

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

Keresés több fájlt, különböző kiterjesztés minden könyvtárak

használhatja a keresés parancs keresse meg több fájlok megosztása a különböző fájlokat, mint a *.doc, *.txt *.pdf, stb. Ezt külön lehet elvégezni, egyszerre egy kiterjesztést, vagy csak egy parancsot használva, amely tartalmazza az összes kívánt kiterjesztést.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

kimenet

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

néha egy bizonyos szöveget tartalmazó fájlt szeretne elérni, de nem tudja felidé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.

a hiperkonvergencia szót tartalmazó összes fájl kereséséhez használja;

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

kimenet

/root/numeric/hci/root/HCIP

Az – I opció lehetővé teszi a parancs számára, hogy figyelmen kívül hagyja az eseteket, és megtalálja a szöveget, akár nagybetűs, akár nem.hiperkonvergencia, Hiperkonvergencia stb.,

a fájlok egy adott könyvtárban való kereséséhez egyszerűen adja hozzá a

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

kimenet

./numeric/hci

fájlok és könyvtárak keresése a

méret alapján minden olyan fájl vagy könyvtár található, amely kisebb, egyenlő vagy nagyobb, mint egy bizonyos méret, egy bizonyos tartományon belül vagy üres. Használja a megfelelő méretformátumot a keresett fájlok vagy könyvtárak típusától függően.,nd fájlokat egy bizonyos méret – egyenlő 30MB

Keresés megtalálja 30MB fájlok

find / -size 30M

keresse meg a fájlokat nagyobb, mint egy megadott méretű

find -size +2M

Kimenet

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

fájlok keresésére, kevesebb, mint 10 MB az aktuális könyvtárban

find . -type f -size -10M

fájlok keresésére, a méretek között 100-200MB

Amikor fájlokat keres belül egy adott tartományban például között 100, illetve 200 MB

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

Nézd a könyvtárak nagyobb, mint 20kb

find / -type d -size +20k

Találni üres fájlok, könyvtárak.,

Files

find ./ -type f -size 0

vagy

find ./ -type f –empty

könyvtárak

find ./ -type d –empty

fájlok keresése életkor vagy módosítási idő szerint

mint n nap

find /path/ -type f -name '*.txt' -mtime +8

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

módosítási dátum szerint

Ez az utolsó 17 órában módosított fájlokat keresi

find . -mtime -17 -type f 

Az utolsó 10 napon belül módosított könyvtárakat keresi

fájlok keresése hozzáférés vagy módosítás alapján

fájlok keresése az elérhető dátum vagy idő alapján. Ez lehetővé teszi olyan fájlok megtekintését, amelyekhez egy meghatározott időszakon belül hozzáfértek vagy nem értek el.

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

find /home -atime +10

a pontosan 10 nappal ezelőtt elérhető fájlok

find /home -atime 10

Az utolsó 10 napon belül elérhető fájlok

az utolsó n napon belül módosított fájlok keresése

a a /home könyvtárban az elmúlt 10 napban módosított fájlok a parancs használatával;

find /home -mtime -10 

meghatározott időn belül módosított fájlok keresése.

például az összes 6-15 nappal ezelőtt módosított fájl a kezdőlapon.,

find /home -type f -mtime +6 -mtime -15

az utolsó 10 percben elérhető fájlok és könyvtárak

az utolsó 10 percben elérhető fájlok megtalálásához használja a-amin opciót.

find . -amin -10 -type f

Kimenet

./.bash_history./.profileroot@ubuntu1804:~#

Könyvtárak elérhető belül az utolsó 10 perc

find . -amin -10 -type d

keresse meg a fájlokat megfelelő egyedi engedélyek

Szintaxis

$ find -perm mode

Ahol mód van az engedély, amely vagy numerikus, mint a 644, 655, 700, 777, stb, vagy a betűk, mint a u=x, a=r+x, stb.,

az üzemmódot a következő három különböző módon adhatja meg.

  1. előtag nélkül, ha a megadott pontos engedélyekkel rendelkező fájlokat szeretné megtalálni.
  2. With”- ” for files with at least the specified permission. Ez visszaadja a megadott fájlokat, valamint további magasabb engedélyeket.
  3. a “/” használatához meg kell adnia a tulajdonost vagy csoportot a fájl engedélyével.,

777

find -perm 777

kimenet

./file1

legalább 766
find-perm -766

kimeneti

./file2./file1

a parancs minden olyan fájlt keres, amelyben a

  • a fájl tulajdonosa olvasási/írási/végrehajtási jogosultsággal rendelkezik.
  • csoport olvasási / írási jogosultsággal rendelkezik
  • mások olvasási / írási engedélyt kaptak

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

A tulajdonos által írható fájlok keresése

most a “/” fájlt használjuk a tulajdonos, vagy csoport vagy mások által írható fájlok keresésére.

find -perm /222../file2./file3./file1

a fentiek olyan fájlokat keresnek, amelyeket a tulajdonos vagy a csoport írhat.
Ez olyan fájlokat ad vissza, amelyeket bármelyik írhat, de nem feltétlenül mindkettő. A fájlok megtekintéséhez, ahol mindkettő írható engedélyekkel rendelkezik, használja a – előtagot.,

./file2./file1

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

keresse meg a Jack

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

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

keresse meg az összes szöveges fájlt tulajdonosa Jack

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

kimenet

/home/jack/docs/file32.txt

fájlok és könyvtárak keresése és listája a jogosultságokkal együtt

find -name "*.conf" | ls -l

kimenet

keresse meg és járjon el az eredmények

ebben a szakaszban megnézzük, hogyan viselkedhet olyan fájlokon, amelyek megfelelnek a keresés parancsban megadott mintának.,

fájlok keresése és jogosultságok módosítása

bizonyos fájltípusok jogosultságainak keresése és módosítása. A mi esetünkben, fogunk dolgozni PHP fájlokat különböző engedélyekkel az alábbiak szerint.,

most keresse meg a PHP fájlok (fent), majd cserélje ki az engedélyeket a 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

A parancs úgy néz ki, a PHP fájlokat a ver könyvtárat, majd beállítja az engedélyt, hogy a 755 (rwxr-xr-x)

Eredmények

keresés lehetőséget, majd módosítsa a fájl, illetve könyvtár engedélyek

keresse meg a fájlokat 644 jogosultságokat megváltoztatni őket, hogy 655 engedélyek

find . -type f -perm 644 -exec chmod 655 {} ;

Azt is nézd könyvtárakat 644 engedélyek, majd cserélje ki ezt a 755.,

find . -type d -perm 644

kimenet

./docs 

a docs mappának 644 jogosultsága van

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

755,

find . -type d -perm 644 -exec chmod 755 {} ;

most újra megnézhetjük, hogy pontosan mi a 755

find . -type d -perm 755

kimenet
.
./docs

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

Ls –la parancs a következő adatokat adja meg:

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

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

egy adott fájl megkeresése és másolása egy

file22.tx t fájl és másolja a~/tmp/images könyvtárba.,

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

keresse meg és másolja át a fájlok egy típusát a

könyvtárba, hogy megtalálja a jpg kiterjesztést az aktuális könyvtárban, és másolja őket egy másik helyre, például egy képmappába, használja;

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

Ez megtalálja 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 fájlt több könyvtárba.,

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

Ez megtalálja a HCI fájlt, és átmásolja azt a /tmp/dir1/ /tmp/dir2/ és $HOME/3/

fájlok más könyvtárba való áthelyezéséhez

egy ismert fájl egy másik könyvtárba való áthelyezéséhez., A universal.php fájl áthelyezése;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

bizonyos kiterjesztésű fájlok keresése és áthelyezése egy másik mappába

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

bizonyos fájlok keresése és áthelyezése egy adott mappába

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

a parancs a uni névvel kezdődő és bármilyen kiterjesztéssel rendelkező összes fájlt keresi. Ezután áthelyezi őket a /unifiles/

fájlok keresése és áthelyezése életkor alapján

a megadott napoknál régebbi fájlok keresése és áthelyezése egy másik helyre, például az archívumba.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

Ez 20 napnál régebbi pdf fájlokat keres, majd áthelyezi őket a backup1 könyvtárba.,fájlok és könyvtárak

az aktuális könyvtárban található fájlok vagy könyvtárak megtalálásának és eltávolításának szintaxisa:

find . -type f -name "file to delete" -exec rm -f {} ; fájlok törlése csak vagy

find . -type d -name "dir-to-delete" -exec rm -rf {} ; könyvtárak törlése csak

csak bizonyos fájlok keresése és törlése

A til-vel kezdődő fájlok törlése, használata;

find . -type f -name "til*" -exec rm {} ; 

A til

find . -type d -name "til*" -exec rm {} ;

mindkét fájl és könyvtár eltávolítása

find . -name "til*" -exec rm -rf {} ; 

Ez eltávolítja mind a fájlokat, mind a könyvtárakat, kezdve a til betűkkel.,

Delete by extension

Az alábbiakban hogyan lehet megtalálni és törölni az összes txt fájlokat az aktuális könyvtárban. Cserélje ki a txt – t egy másik kiterjesztésre, mint például a bak, pdf vagy bármely más eltávolítani kívánt kiterjesztésre.

find . -type f -name "*.txt" -exec rm -f {} ;

abban az esetben, ha azt szeretné, hogy a rendszer megerősítse az egyes fájlok törlése előtt, adja hozzá az-I opciót az alábbiak szerint.,

find . -type f -name "*.txt" -exec rm -i {} ;

kimenet

alapértelmezés szerint a -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 könyvtárak és a fájlokat tartalmazó könyvtárak törlését. A-f opció kényszeríti az eltávolítást, mind a fájlokhoz, mind a könyvtárakhoz.

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

20 napnál régebbi biztonsági mentési fájlok keresése és törlése az aktuális könyvtárból.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

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

csak a

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

find . -type d -name dir22 -exec rm -rf {} ;

győződjön meg róla, hogy megfelel a könyvtárnév esetének, vagy használja a-iname opciót.

find . -type d -iname Dir22 -exec rm -rf {} ;

eltávolítja mindkét Dir22 és dir22

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

find . -type d -iname Dir22 -exec rm -rf -i {} ;

Output
rm: remove directory ‘./ Dir22’?, n
rm: remove directory’./ dir22′? y

esetünkben beírtuk an könyvtárba aDir22 könyvtárat, amelyet nem törölünk, és ay adir22 amely most eltávolításra kerül.

üres fájlok keresése és eltávolítása

az alábbi parancsok bármelyikével megkeresheti az üres fájlokat, majd automatikusan törölheti azokat.

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

vagy
keresés ./ – type F-size 0 / xargs rm-f
vagy
find .,/ – type F-size 0-delete

üres könyvtárak keresése és eltávolítása

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 a kritikus fájlok törlése a számítógépről károsíthatja az operációs rendszert vagy alkalmazásokat, vagy fontos adatok elvesztéséhez vezethet.

a véletlen törlések elkerülése érdekében a legjobb gyakorlat egy nem gyökér felhasználói fiók használata., Győződjön meg arról is, hogy törli a megfelelő fájlokat, amelyek nem hasznosak, valamint hogy minden adatfájlról biztonsági másolatot készít.

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

próbálja ki a fenti Linux find parancsokat a laborban vagy nem termelési környezetben. Nézze meg, hogy használhat-e néhányat a fájlrendszer-Tisztítás automatizálásához a Crontab segítségével. A Linux elsajátításához nézd meg ezt az online tanfolyamot.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Tovább az eszköztárra