Linux parancsok és shell készségek
Find: Ez egy Linux Search, amely mindent megtesz
A find a legveszélyesebb parancs egy éles kiszolgálón, és pontosan ezért érdemli meg az elsajátítást. Felsorol, szűr és végrehajt egy kifejezésben, és minden klasszikus '/var here be dragons' esemény egy olyan előnézetre vezet vissza, amelyet valaki kihagyott. A szokások mechanikusak: először a -print vagy -ls parancsot használjuk, az -exec ... + parancsot kötözzük meg, a -print0-t átvezetjük az xargs -0-ba, és a -delete-et második lépésként kezeljük, soha nem első piszkozatként.
Kulcspontok
- Szűrjön a metaadatokra, ne csak a névre: -type f, -mtime +30, -size +100M és -perm -o+w megkeresi azokat a páratlan fájlokat, amelyeket az elnevezési konvenciók és az életkor jelentései egyaránt figyelmen kívül hagynak.
- Tekintse meg az összes destruktív lekérdezést: először keresse meg a /var/www/uploads -name 'core.*' -ls-t, csak a lista elolvasása után cserélje ki az -ls-t a -delete-re; az előnézet a biztonsági ellenőrzés, nem egy javaslat.
- -exec cmd {} + a fájlokat néhány hívásra kötegeli, és legyőzi a \; forma nagy fákon; ugyanaz a szintaxis „minden egyező fájlt egy folyamatban kezel” argumentumlista túl hosszú hiba nélkül.
- Null-safe output by default: find . -name '*.old' -print0 | xargs -0 rm -v; A plain pipes into xargs egy ismert adatvesztési minta azon a napon, amikor egy fájlnév szóközt tartalmaz.
- Az -xdev és a -maxdepth becsületesen tartja a járást: megállítja a keresést a mountok és pillanatképek követésében, ami megmenti a futási időt és a "ezzel a könyvtárral" kapcsolatos feltételezéseit.
- Az időablakok pontosak, ha pontosan kérdezik: -mmin -1440 az elmúlt 24 órára, -newermt '2026-01-01' egy dátum óta, és ne feledje, hogy az -xtime azt jelenti, hogy "n teljes 24 órával ezelőtti időszak", mielőtt a jegyben idézné.
- Prune deliberately: find . -path '*/node_modules' -prune -o -name '*.js' -print kihagyja azt a könyvtárat, amely egyébként méretben és időben meghaladja a fa többi részét.
- Expect nonzero exits on unreadable directories; Az stderr sorok, mint például az „Engedély megtagadva”, kihagyott fájlok, nem adatok, így a szkriptek vagy tolerálják a keresés kilépési állapotát, vagy kifejezetten ellenőrzik azt, ahelyett, hogy tiszta járást feltételeznének.
Terepi jegyzet
A legrosszabb lelet -törlés történetünk egy idézet nélküli -névmintával kezdődött, amelyet a második héj három szóra bővített a lelet előtt. A szabály azóta egyszerű: -nyomtasd először, mindig idézd, és a -delete soha nem lép be a parancsba az első futáskor.
Gyakori kérdések
A keresés fájlokat talált, de a downstream parancs nem csinált semmit. Miért?
Szinte mindig idézőjel vagy üres bevitel: a mintát kibővítette a shell, mielőtt a find látta volna, vagy a xargs nem kapott semmit. Idézet mintákat, és párosítsa a -print0-t az xargs -0-val minden egyes alkalommal.
-delete vagy rm keresés után?
-delete is direct, fast, and unforgiving; nem keverhető az -exec-vel ugyanabban a kifejezésben. Run the matching -print first and read it; that is the whole discipline.
Miért talál nyomtatási engedélyeket a rendszerkönyvtárakban?
Azok az összetevők, amelyek a nyomtatási hibákat nem tudják beolvasni az stderr-be, és a find exit nem nulla értékre állíthatja be; szűrje a 2>/dev/null paramétert az interaktív kényelem érdekében, és soha ne értelmezze ezeket a hibákat fájlok hiányaként.
Mi a különbség a -mtime és a -ctime között?
-mtime a tartalom változása, -ctime a metaadatok változása (engedélyek, átnevezés, hardlink száma); egy chown vagy egy mozdulat felüti a ctime-ot anélkül, hogy az mtime-t érintené, ami negyedenként pontosan egy jelentést zavar össze.
Hogyan segít a Kinetikatech a linux parancsok és shell készségek területén
Ezt már több százszor kezeltük: Azok a parancsok és szkriptelési szokások, amelyek eldöntik, hogy a rendszergazda üzemeltet-e egy kiszolgálót, vagy küzd ellene: keressen, alakítson, vigyen át és felügyeljen szöveget és folyamatokat a minden alaptelepítésben megtalálható eszközökkel. A Linux-szerverbiztonság és Szerveradminisztráció szolgáltatással a teljes kört megkapod: felmérünk, bevezetünk, szünet nélkül figyelünk, és szükség esetén 30 percen belül beavatkozunk.