Frissítve: 11/30/2020 számítógép Hope

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.

Megjegyzés

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”.