Linux operációs rendszerekben a find parancs használható fájlok és könyvtárak keresésére a számítógépen. A folytatáshoz válasszon ki egy linket a következő listából, vagy menjen át minden egyes szakaszon sorrendben.
A find használatához kezdje el egy terminál munkamenet megnyitásával a parancssor eléréséhez.
A keresés alapvető funkciója
a keresés opció nélkül történő futtatása minden fájl és könyvtár listáját hozza létre a munkakönyvtárban és alatt., Például, ha a munkakönyvtár /home/hope/Documents, Futtatás keresés kimenetek a következő:
- minden fájlt / home / hope / Documents.
- minden alkönyvtár /home/hope/Documents.
- minden fájl az egyes alkönyvtárakban.
nézzük meg akcióban., Először ellenőrizzük a munkakönyvtárunkat a PWD paranccsal:
pwd
/home/hope/Documents
most futtassuk a Keresés lehetőséget nélkül:
find
ebben a példában összesen tíz fájlt és négy alkönyvtárat látunk a Dokumentumok mappát.
vegye figyelembe, hogy a kimenet egyetlen ponttal kezdődik, amely a munkakönyvtárat képviseli., A keresés opció nélkül futtatása megegyezik azzal, hogy meghatározza, hogy a keresésnek a munkakönyvtárban kell kezdődnie, mint például:
find .
a fenti példa a “megfelelő” módszer a keresés használatára. Ha egy másik Unix-szerű operációs rendszeren, például a FreeBSD-n próbálod használni, akkor meg kell adnod egy könyvtárat. Jó gyakorlat a parancs ezen formájának használata.,
A/home /hope/Documents/images könyvtárban található fájlok és alkönyvtárak listázásához adja meg a parancs első Argumentumát:
find /home/hope/Documents/images
vegye figyelembe, hogy a teljes elérési út is megjelenik az eredményekben.,
Ha a munkakönyvtárunk / home / hope / Documents, akkor a következő parancsot használhatjuk, amely ugyanazokat a fájlokat találja:
find ./images
de ezúttal a kimenet tükrözi a keresés kezdő helyét, és így néz ki:
alapértelmezés szerint a keresés a kiindulási hely minden alkönyvtárában néz ki. Ha korlátozni szeretné az alkönyvtár hány szintjét a kereséshez, használhatja a-maxdepth opciót egy számmal.
például a-maxdepth 1 megadása csak abban a könyvtárban keres, ahol a keresés megkezdődik., Ha bármilyen alkönyvtár található, azok felsorolásra kerülnek,de nem keresnek.,
find . -maxdepth 1
../images./bigfiles.txt./gimp-2.8.16.tar.bz2./hp-fanfic./archlinux-2016.02.01-dual.iso
Megadásával -maxdepth 2 keresést a könyvtár egy alkönyvtár, mély:
find . -maxdepth 2
Megadásával -maxdepth 3 keresések egy szinttel mélyebb, mint, hogy:
find . -maxdepth 3
a Megállapítás név
korlátozza a keresési eredmények mérkőzésen csak azok a fájlok, illetve könyvtárakat, hogy egy bizonyos név, a-név lehetőséget, majd tegye a nevét idézetek:
find . -name "picard.jpg"
./images/memes/picard.jpg
Ön is használja a helyettesítő karakterek részeként a fájl nevét., Például, hogy megtalálja az összes fájlt, amelynek neve véget ér .jpg, akkor egy csillag, hogy képviselje a többi fájl nevét. Ha fut a parancs, a shell lesz glob a fájl nevét abba, ami egyezik a minta:
find . -name "*.jpg"
./images/hp/snape.jpg./images/hp/harry.jpg./images/memes/winteriscoming.jpg./images/memes/picard.jpg
Figyeljük meg, hogy a parancs nem listában azt a fájlt, amelynek kiterjesztése (ebben az esetben, JPG) nagybetűkkel. Ennek oka az, hogy más operációs rendszerekkel, például a Microsoft Windows rendszerrel ellentétben a Linux fájlnevek esetérzékenyek.,”>
A lista csak a könyvtárakat, s kihagyja a fájl nevét adja meg -írja be a d:
find . -type d
../images./images/hp./images/memes./hp-fanfic
a fájlok keresését, a méret alapján
például, hogy azon fájlok keresésére, “nagyobb, mint 50 kilobyte”, használható-méret +50k:
find . -size +50k
./images/memes/winteriscoming.jpg./gimp-2.8.16.tar.bz2./archlinux-2016.02.01-dual.iso
A fájlok “nagyobb mint 10 megabájt”, használható-méret +10M:
find . -size +10M
./gimp-2.8.16.tar.bz2./archlinux-2016.02.01-dual.iso
A “nagyobb, mint 1 gigabájt”, használható-méret +1G:
find . -size +1G
./archlinux-2016.02.01-dual.iso
A fájlok egy bizonyos méret tartomány, két -méret lehetőséget., Például, hogy megtalálja files “nagyobb mint 10 megabájt, de kisebb, mint 1 gigabájt”, adja meg méretű +10M -es méret -1G:
find . -size +10M -size -1G
./gimp-2.8.16.tar.bz2
a fájlok keresését alapján módosítás, hozzáférés, vagy állapot változás
A -mtime lehetőség korlátozza keresés hány nap óta a fájl tartalma módosították. A múltbeli napok megadásához használjon negatív számot., Például, ha csak azokat a fájlokat szeretné megtalálni, amelyeket az elmúlt két napban módosítottak (48 órával ezelőtt), használja-mtime -2:
find . -mtime -2
a-mmin opció ugyanezt teszi, de percek, nem napok szempontjából. Például ez a parancs csak az elmúlt fél órában módosított fájlokat jeleníti meg:
find . -mmin -30
hasonló lehetőség a-ctime, amely ellenőrzi, hogy a fájl állapota utoljára megváltozott-e, napokban mérve. Az állapotváltozás a fájl metaadatainak változása. Például a fájl engedélyeinek módosítása állapotváltozás.,
az opció -Cmin állapotváltozást keres, percben mérve.
azt is keresheti, hogy mikor volt utoljára elérhető fájl — más szóval, amikor a tartalmát Legutóbb megtekintették. A-atime opció a fájlok keresésére szolgál a legutóbbi hozzáférési idő alapján, napokban mérve.
A -amin opció ugyanazt a keresési korlátozást hajtja végre, de percben mérve.
A kimenet átirányítása egy szöveges fájlba
ha nagyon nagy keresést hajt végre, érdemes elmenteni a keresési eredményeket egy fájlba, hogy később megtekinthesse az eredményeket., Ezt úgy teheti meg, hogy átirányítja a keresési kimenetet egy fájlba:
find . -iname "*.jpg" > images.txt
ezután megnyithatja eredményeit egy szövegszerkesztőben, vagy kinyomtathatja azokat a cat paranccsal.
cat images.txt
Alternatív megoldásként a kimenetet a tee parancsra is becsatolhatja, amely kinyomtatja a kimenetet a képernyőre, és egy fájlba írja:
find . -size +500M | tee bigfiles.txt
cat bigfiles.txt
./archlinux-2016.02.01-dual.iso
a hibaüzenetek elnyomása
a keresés végrehajtásakor az”engedély megtagadva “hibaüzenet jelenhet meg., Például, ha a gyökérkönyvtárat normál felhasználóként keresi:
find /
akkor ezt a hibaüzenetet kapja, ha a find megpróbál hozzáférni egy fájlhoz, amelyet a felhasználói fiókja nem rendelkezik olvasási engedéllyel. A keresést rendszergazdaként (root) hajthatja végre, amely teljes hozzáférést biztosít a rendszer minden fájljához. De nem ajánlott gyökérként csinálni a dolgokat, hacsak nincs más lehetőség.,
Ha csak el kell rejtenie az “engedély megtagadva” üzeneteket, akkor hozzáadhat 2&>1 | grep-v “engedély megtagadva” a parancs végére, mint ez:
find / 2>&1 | grep -v "Permission denied"
a fenti példa kiszűri a “engedély megtagadva” üzenetek a keresésből. Hogyan?
2>&1 egy speciális átirányítás, amely hibaüzeneteket küld a szabványos kimenetre, hogy a kombinált kimeneti sorokat a grep parancsra irányítsa., a grep-v ezután inverz egyezést hajt végre az “engedély megtagadva” oldalon, csak olyan sorokat jelenít meg, amelyek nem tartalmazzák ezt a karakterláncot.
a grep használata a hibaüzenetek szűréséhez hasznos módszer, ha az” engedély megtagadva ” túlzsúfolja a keresési eredményeket, a keresést pedig nem lehet gyökérként végrehajtani.
példák
find ~/. -name "*.txt" -amin -120
keresse meg az összes fájlt a saját könyvtárában, amely alatt a kiterjesztés vége”.txt”. Csak az elmúlt két órában elérhető fájlokat jelenítse meg.,
find . -name "*.zip" -size +10M -mtime -3
keresse meg az összes fájlt a munkakönyvtárban, amelynek neve alatt van a kiterjesztés”.zip”, amelynek mérete nagyobb, mint 10 megabájt. Csak azokat a fájlokat jelenítse meg, amelyek tartalmát az elmúlt 72 órában módosították.
find . -iname "*report*" -type f -maxdepth 2
végezzen eseti érzéketlen keresést olyan fájlokra, amelyek a nevükben a” jelentés ” szót tartalmazzák. Ha a keresés a nevében talál egy “jelentés” könyvtárat, ne jelenítse meg. Keresés csak a munkakönyvtárban, és egy könyvtár szintjén alatta.,
find / -name "*init*" 2>&1 | grep -v "Permission denied" | tee ~/initfiles.txt
keresse meg az összes fájlt a rendszeren, amelynek neve” init ” – et tartalmaz, a hibaüzenetek elnyomásával. Az eredmények megjelenítése a képernyőn, majd a kimenet őket egy fájlt a saját könyvtárban nevű ” initfiles.txt”.
Vélemény, hozzászólás?