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 qa
betű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 qa
nevű 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.
- előtag nélkül, ha a megadott pontos engedélyekkel rendelkező fájlokat szeretné megtalálni.
- With”
-
” for files with at least the specified permission. Ez visszaadja a megadott fájlokat, valamint további magasabb engedélyeket. - 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.