Linuxové príkazy
find: Linux Search, ktorý dokáže všetko
find je najnebezpečnejší príkaz na produkčnom serveri a práve preto si zaslúži zvládnutie. Enumeruje, filtruje a vykonáva v jednom výraze a každý klasický incident '/var here be dragons' vedie späť k náhľadu, ktorý niekto preskočil. Zvyky sú mechanické: najprv prejsť s -print alebo -ls, dávkovať s -exec ... +, prejsť cez -print0 do xargs -0 a považovať -delete za rozhodnutie pri druhom prechode, nikdy nie ako prvý návrh.
Kľúčové body
- Filtrujte podľa metaúdajov, nie iba podľa názvu: -type f, -mtime +30, -size +100M a -perm -o+w vyhľadajte nepárne súbory, ktorým chýbajú konvencie pomenovania a správy o veku.
- Ukážka každého deštruktívneho dotazu: nájdite /var/www/uploads -name 'core.*' -ls najprv, -ls vymeňte za -delete až potom, čo si skutočne prečítate zoznam; náhľad je bezpečnostná kontrola, nie návrh.
- -exec cmd {} + dávkuje súbory do niekoľkých vyvolaní a prekoná \; forma na veľkých stromoch; tá istá syntax umožňuje 'rm každý zodpovedajúci súbor v jednom procese' bez chyby argument-list-too-long.
- V predvolenom nastavení bezpečný výstup null: find . -name '*.old' -print0 | xargs -0 rm -v; obyčajné prepojenia do xargov sú známym vzorom straty údajov v deň, keď názov súboru obsahuje medzeru.
- -xdev a -maxdepth udržujú chôdzu úprimnou: prestanú hľadať v mountoch a snapshotoch, čo zachráni runtime aj vaše predpoklady o 'tomto adresári'.
- Časové okná sú presné, ak sa spýtate presne: -mmin -1440 za posledných 24 hodín, -newermt '2026-01-01' od dátumu, a pamätajte, že -xtime znamená 'pred celými 24-hodinovými obdobiami' predtým, ako to uvediete na tikete.
- Zámerne prerezávať: nájsť . -path '*/node_modules' -prune -o -name '*.js' -print preskočí jeden adresár, ktorý inak prevažuje nad zvyškom stromu čo do veľkosti a času.
- Očakávajte nenulové ukončenia pri nečitateľných adresároch; Riadky stderr ako 'Povolenie odmietnuté' sú preskočené súbory, nie údaje, takže skripty buď tolerujú stav ukončenia vyhľadávania, alebo ho explicitne kontrolujú namiesto toho, aby predpokladali čisté prechádzky.
Poznámka z teréna
Náš najhorší príbeh o nájdení - vymazaní sa začal necitovaným vzorom mena, ktorý sa druhý obal rozšíril na tri slová pred nájdením. Pravidlo je jednoduché: -najskôr tlačiť, vždy citovať a -delete nikdy nezadá príkaz pri prvom spustení.
Často kladené otázky
Môj find našiel súbory, ale downstream príkaz neurobil nič. prečo?
Takmer vždy citujem alebo prázdny vstup: vzor bol rozšírený shellom predtým, ako ho find videl, alebo xargs nedostal nič. Citujte vzory a zakaždým spárujte -print0 s xargs -0.
-odstrániť alebo rm po nájdení?
-delete je priame, rýchle a neúprosné; nemôže byť zmiešané s -exec v rovnakom výraze. Najprv spustite párovanie -print a prečítajte si ho; to je celá disciplína.
Prečo sa v systémových adresároch nachádzajú chyby povolenia na tlač?
Komponenty, ktoré nemôžete prečítať tlačové chyby na stderr a nájsť koniec nenulový; filtrovať pomocou 2>/dev/null pre interaktívny komfort a nikdy tieto chyby neinterpretovať ako absenciu súborov.
Opäť je rozdiel medzi -mtime a -ctime?
-mtime je zmena obsahu, -ctime je zmena metadát (oprávnenia, premenovanie, počet pevných odkazov); chown alebo pohyb narazí na ctime bez toho, aby sa dotkol mtime, čo mätie presne jednu správu za štvrťrok.
Ako Kinetikatech pomáha s linuxové príkazy
To je to, čo robíme každý deň: Príkazy a skriptovacie návyky, ktoré rozhodujú o tom, či správca prevádzkuje server alebo s ním bojuje: vyhľadávajte, transformujte, prenášajte a dohliadajte na text a procesy pomocou nástrojov, ktoré sú súčasťou každej základnej inštalácie. Naša služba Bezpečnosť Linuxových serverov a Správa serverov pokrýva všetko od hodnotenia po implementáciu, monitoring 24/7 a núdzovú reakciu do 30 minút.