Comandos de Linux y habilidades de Shell
find: La búsqueda de Linux que lo hace todo
find es el comando más peligroso en un servidor de producción, y es exactamente por eso que merece dominio. Enumera, filtra y ejecuta en una expresión, y cada incidente clásico '/var here be dragons' se remonta a una vista previa que alguien se saltó. Los hábitos son mecánicos: caminar con -print o -ls primero, procesar lotes con -exec ... +, canalizar -print0 a xargs -0 y tratar -delete como una decisión de segundo paso, nunca como un primer borrador.
Puntos clave
- Filtre por metadatos, no solo por nombre: -type f, -mtime +30, -size +100M y -perm -o+w localicen los archivos impares que las convenciones de nomenclatura y los informes de antigüedad omiten.
- Obtenga una vista previa de cada consulta destructiva: busque /var/www/uploads -name 'core.*' -ls primero, intercambie -ls por -delete solo después de leer la lista; la vista previa es una comprobación de seguridad, no una sugerencia.
- -exec cmd {} + agrupa archivos en pocas invocaciones y supera el \; formarse en árboles grandes; la misma sintaxis permite 'rm cada archivo coincidente en un proceso' sin un error de lista de argumentos demasiado larga.
- Salida segura para nulos de forma predeterminada: buscar. -nombre '*.old' -print0 | xargs -0 rm -v; Las canalizaciones simples en xargs son un patrón conocido de pérdida de datos el día en que un nombre de archivo contiene un espacio.
- -xdev y -max Depth mantienen el camino honesto: impiden que find siga montajes e instantáneas, lo que rescata tanto el tiempo de ejecución como sus suposiciones sobre 'este directorio'.
- Las ventanas de tiempo son precisas si se preguntan con precisión: -mmin -1440 para las últimas 24 horas, -newermt '2026-01-01' para desde una fecha, y recuerde -xtime significa 'hace n períodos completos de 24 horas' antes de citarlo en un ticket.
- Pode deliberadamente: encuentre . -path '*/node_modules' -prune -o -name '*.js' -print omite el directorio que de otro modo supera al resto del árbol en tamaño y tiempo.
- Espere salidas distintas de cero en directorios ilegibles; Las líneas stderr como 'Permiso denegado' son archivos omitidos, no datos, por lo que los scripts toleran el estado de salida de la búsqueda o lo verifican explícitamente en lugar de asumir recorridos limpios.
Nota de campo
Nuestra peor historia de búsqueda y eliminación comenzó con un patrón de nombre sin comillas que el segundo caparazón se expandió a tres palabras antes de buscar. Desde entonces, la regla es simple: -imprimir primero, citar siempre y -eliminar nunca incluye un comando la primera vez que se ejecuta.
Preguntas frecuentes
Mi búsqueda encontró archivos pero el comando descendente no hizo nada. ¿Por qué?
Casi siempre entre comillas o entrada vacía: el shell expandió el patrón antes de que find lo viera, o xargs no recibió nada. Cotiza patrones y empareja -print0 con xargs -0 cada vez.
-¿eliminar o rm después de buscar?
-delete es directo, rápido e implacable; no se puede mezclar con -exec en la misma expresión. Ejecute primero el -print coincidente y léalo; esa es toda la disciplina.
¿Por qué aparecen errores de permisos de impresión en los directorios del sistema?
Componentes que no pueden leer errores de impresión en stderr y hacer que la salida de búsqueda sea distinta de cero; filtre con 2>/dev/null para mayor comodidad interactiva y nunca interprete esos errores como ausencia de archivos.
¿Diferencia entre -mtime y -ctime otra vez?
-mtime es cambio de contenido, -ctime es cambio de metadatos (permisos, cambio de nombre, recuento de enlaces duros); un chown o un movimiento choca con ctime sin tocar mtime, lo que confunde exactamente un informe por trimestre.
Cómo ayuda Kinetikatech con comandos de linux y habilidades de shell
Esto es lo que hacemos cada día: Los comandos y hábitos de secuencias de comandos que deciden si un administrador opera un servidor o lucha contra él: buscar, transformar, transferir y supervisar texto y procesos con las herramientas que se encuentran en cada instalación básica. Nuestro servicio Seguridad de servidores Linux y Gestión de servidores lo cubre de principio a fin: evaluación, implementación, monitoreo 24/7 y respuesta de emergencia en 30 minutos.