104.7 Encontrar archivos del sistema y su ubicacion correcta - Comandos clave

find - Buscar archivos en tiempo real

Por nombre

ComandoDescripcion
find /ruta -name "archivo"Buscar por nombre exacto
find /ruta -name "*.txt"Buscar por patron (comodines)
find /ruta -iname "*.TXT"Buscar sin distinguir mayusculas

Por tipo

ComandoDescripcion
find /ruta -type fSolo archivos regulares
find /ruta -type dSolo directorios
find /ruta -type lSolo enlaces simbolicos

Tipos: f=archivo, d=directorio, l=enlace, b=bloque, c=caracter, p=pipe, s=socket

Por tamano

ComandoDescripcion
find / -size +100MMayor de 100 MB
find / -size -1kMenor de 1 KB
find / -size 0Archivos vacios
find / -emptyArchivos/directorios vacios

Sufijos: c=bytes, k=KB, M=MB, G=GB

Por tiempo

ComandoDescripcion
find / -mtime -7Modificados en ultimos 7 dias
find / -mtime +30Modificados hace mas de 30 dias
find / -mmin -60Modificados en ultimos 60 minutos
find / -amin -30Accedidos en ultimos 30 minutos

Por permisos y propietario

ComandoDescripcion
find / -perm 777Permisos exactos 777
find / -perm -4000Con SUID activo
find / -perm -2000Con SGID activo
find / -user sandraPropiedad de usuario sandra
find / -group developersPropiedad del grupo developers

Acciones (-exec)

ComandoDescripcion
find /tmp -name "*.tmp" -exec rm {} \;Borrar archivos encontrados
find / -name "*.sh" -exec chmod 755 {} \;Cambiar permisos
find / -name "*.conf" -exec ls -l {} \;Listar en detalle
find / -name "*.log" -exec grep -l "error" {} +Buscar texto (agrupado)
find /tmp -name "*.tmp" -deleteBorrar (alternativa a -exec rm)

locate / mlocate - Busqueda rapida en base de datos

ComandoDescripcion
locate passwdBuscar archivos que contengan “passwd” en su ruta
locate -i readmeBuscar sin distinguir mayusculas
locate -n 10 "*.conf"Limitar a 10 resultados
locate -c "*.log"Contar coincidencias
locate -r '/etc/.*\.conf$'Buscar con expresion regular
sudo updatedbActualizar base de datos

Configuracion de updatedb (/etc/updatedb.conf)

VariableFuncion
PRUNEPATHSDirectorios a excluir
PRUNEFSTipos de FS a excluir
PRUNENAMESNombres de directorios a excluir
PRUNE_BIND_MOUNTSExcluir bind mounts (yes/no)

which - Ruta del ejecutable

ComandoDescripcion
which lsRuta completa del ejecutable ls
which -a pythonTodas las ubicaciones de python en $PATH

Nota: which NO encuentra builtins del shell

whereis - Binario, fuente y manual

ComandoDescripcion
whereis lsBinario, fuente y man page de ls
whereis -b lsSolo binario
whereis -m lsSolo pagina de manual
whereis -s gccSolo codigo fuente

type - Identificar tipo de comando

ComandoDescripcion
type ls¿Que es ls? (alias, builtin, archivo…)
type cd¿Que es cd? (builtin)
type -t lsSolo el tipo (una palabra)
type -a lsTodas las definiciones de ls

Tipos: alias, builtin, file, function, keyword

Comparativa de comandos de busqueda

ComandoBusca enVelocidadEncuentra builtinsRequiere ruta
findDisco (tiempo real)LentaNoSi
locateBase de datosMuy rapidaNoNo
which$PATHRapidaNoNo
whereisUbicaciones estandarRapidaNoNo
typeShell + $PATHRapidaSiNo

FHS - Directorios clave (referencia rapida)

DirectorioContenido
/binBinarios esenciales (-> /usr/bin en UsrMerge)
/sbinBinarios admin (-> /usr/sbin en UsrMerge)
/lib, /lib64Bibliotecas (-> /usr/lib en UsrMerge)
/usr/binBinarios de usuario
/usr/sbinBinarios de administracion
/usr/localSoftware instalado localmente (manual)
/etcConfiguracion del sistema
/var/logLogs del sistema
/var/spoolColas de trabajo
/var/tmpTemporales persistentes
/tmpTemporales (se borran al reiniciar)
/homeDirectorios de usuarios
/rootHome de root
/bootKernel, initramfs, GRUB
/devArchivos de dispositivo
/procFS virtual: procesos y kernel
/sysFS virtual: hardware y drivers
/runDatos de runtime (desde ultimo boot)
/mntMontajes manuales temporales
/mediaMontajes automaticos de extraibles
/optSoftware de terceros
/srvDatos de servicios