Linux команди и умения за командни обвивки
намерете: търсенето в Linux, което прави всичко
find е най-опасната команда на производствен сървър и точно затова заслужава майсторство. Той изброява, филтрира и изпълнява в един израз и всеки класически инцидент с '/var here be dragons' проследява назад към визуализация, която някой е пропуснал. Навиците са механични: вървете с -print или -ls първо, групирайте с -exec ... +, прекарайте -print0 в xargs -0 и третирайте -delete като решение за второ преминаване, никога като първа чернова.
Ключови точки
- Филтрирайте по метаданни, а не само по име: -type f, -mtime +30, -size +100M и -perm -o+w откриват странните файлове, които конвенциите за именуване и отчетите за възраст пропускат.
- Прегледайте всяка деструктивна заявка: намерете /var/www/uploads -name 'core.*' -ls първо, разменете -ls за -delete само след като действително прочетете списъка; визуализацията е проверка за безопасност, а не предложение.
- -exec cmd {} + групира файлове в няколко извиквания и бие \; форма на големи дървета; същият синтаксис дава възможност за 'rm всеки съвпадащ файл в един процес' без грешка твърде дълъг списък с аргументи.
- Null-safe изход по подразбиране: find. -име '*.old' -print0 | xargs -0 rm -v; обикновените канали в xargs са известен модел за загуба на данни в деня, когато името на файла съдържа интервал.
- -xdev и -maxdepth поддържат разходката честна: те спират find от следване в монтирания и моментни снимки, което спасява както времето за изпълнение, така и вашите предположения относно „тази директория“.
- Времевите прозорци са точни, ако се задават точно: -mmin -1440 за последните 24 часа, -newermt '2026-01-01' за дата от датата насам и не забравяйте, че -xtime означава 'n пълни 24-часови периода преди', преди да го цитирате в тикет.
- Подрязвайте съзнателно: намерете . -path '*/node_modules' -prune -o -name '*.js' -print пропуска едната директория, която иначе превъзхожда останалата част от дървото по размер и време.
- Очаквайте ненулеви изходи на нечетими директории; редовете на stderr като 'Permission denied' са пропуснати файлове, а не данни, така че скриптовете или толерират изходния статус на find, или го проверяват изрично, вместо да приемат чисти обходи.
Бележка от терен
Нашата най-лоша история за намиране - изтриване започна с модел на име без кавички, който втората обвивка разшири в три думи преди намирането. Правилото оттогава е просто: -print first, quote винаги и -delete никога не влиза в команда при първото изпълнение.
Често задавани въпроси
Моето намиране намери файлове, но командата надолу по веригата не направи нищо. защо
Почти винаги кавички или празен вход: моделът е разширен от обвивката, преди find да го види, или xargs не са получили нищо. Цитирайте шаблони и сдвоявайте -print0 с xargs -0 всеки път.
-изтриване или rm след намиране?
- изтриването е директно, бързо и безпардонно; не може да се смесва с -exec в същия израз. Стартирайте съвпадението - първо отпечатайте и го прочетете; това е цялата дисциплина.
Защо намира грешки в разрешението за печат в системни директории?
Компоненти, които не можете да четете грешки при печат на stderr и да направите find exit ненулево; филтрирайте с 2>/dev/null за интерактивен комфорт и никога не интерпретирайте тези грешки като липса на файлове.
Разлика между -mtime и -ctime отново?
-mtime е промяна на съдържанието, -ctime е промяна на метаданни (разрешения, преименуване, брой твърди връзки); chown или ход удря ctime без да докосва mtime, което обърква точно един отчет на тримесечие.
Как Kinetikatech помага с linux команди и умения за командни обвивки
Това правим днес: Командите и скриптовите навици, които решават дали администраторът управлява сървър или се бори с него: търсене, трансформиране, прехвърляне и надзор на текст и процеси с инструментите, които се намират във всяка основна инсталация. Нашата услуга Сигурност на Linux сървъра и Сървърна администрация покрива всичко — от оценка до внедряване, денонощен мониторинг и спешна реакция до 30 минути.