domingo, 25 de enero de 2009

Localización de ficheros

Comando find: Busca a través de la jerarquía de directorios ficheros que cumplan determinado criterio.
→Formato: find [directorio_de_búsqueda] [expresión]
→Ejemplo:
→Busca desde /etc los ficheros de tipo socket: find /etc -type s
→Busca desde /etc y /usr/share los ficheros que se llamen magic o passwd: find /etc /usr/share -name magic -o -name passwd
→Muestra desde el directorio actual todos los ficheros de forma recursiva: find

La expresión tiene los siguietnes componentes:
→opciones: modifican la forma de operación de find
→ criterio de búsqueda
→ acciones: especifica que hacer con los ficheros que encuentra
→ operadores: permiten agrupar expresiones

Opciones de find (normalmente se colocan al principio de la expresión)
-maxdepth n → desciende como máximo n directorios
-mindepth n → empieza a buscar a partir del nivel n
-depth → procesa el contenido del directorio antes que el propio directorio
-daystart → para medidas con tiempo, empieza desde el principio del día actual
-mount o -xdev → no pasa a otras particiones
-name patrón → busca ficheros que coincidad con el patrón
-wholename → permite incluir nombres con el path
-iname →igual que name pero no distingue mayúsculas / minúsculas
-regex → igual pero usa REGEXPR
-type tipo → busca por tipo de fichero (b,c,d,p,l,s,f)
-size [+/-]n[bck] → busca por tamaño (tamaño igual, mayor o menor que n con b=bloques, c=bytes y k=KB)
-perm [+/-]permisos → busca por permisos(sin nada, permisos exactos, - todos los permisos y + alguno de los permisos)
-user nombre → busca por propietarios
-uid n, -gid n → busca por UID/GID
-nouser, -nogroup → busca ficheros con prop./grupo no válidos
-atime [+/-] n → busca ficheros cuya fecha de acceso para lectura coincide con, es anterior a (+) o es posterior a (-) n días
-mtime [+/-] → lo mismo, pero con la fecha de última modificación del fichero
-ctime [+/-] n → lo mismo, pero con la fecha en que se cambió el estado del fichero
-amin/-mmin/-cmin[+/-]n → lo mismo, pero ahora n representa minutos
-newer file → busca ficheros modificados más recientemente que file
-anewer file → ficheros con último acceso más reciente que la modificaicón de file
-cnewer file → ficheros con cambio de estado más reciente que la modificación de file

Acciones de find:
-print → imprime el nombre de los ficheros que encuentra (acción por defecto)
-ls → imprime el nombre de los ficheros con formato de listado largo
-exec comando \{\} \; → ejecuta comando sobre los ficheros encontrados
-ok comando \{\} \; → igual que -exec pero pregunta antes de ejecutar comando
-prune → si directorio no desciende por el (permite ignorar directorios)
**los caracteres {} se refieren al fichero que find acaba de encontrar y ; indica el fin del comando

Operadores de find:
expr1 -a expr2 → AND (expr2 no se evalúa si expr1 es falsa)
expr1 expr2 → igual que -a
expr1 -o expr2 → OR (expr2 no se evalúa si expr1 es cierta)
! expr1 → NOT (cierto si expr falsa)
( expr1 ) → agrupan expresiones (hay que espcapar los paréntisis con \)



Comando wich: muestra la localización de comandos
Formato: which [-a] comando
Opciones: -a muestra las localizaciones del comando


Comando whereis: muestra la localización del binario, fuente y página de manual de un comando
Formato: whereis [opciones] comando
Opciones: -b/-m/-s muestra sólo el binario/manual/fuente



Comando locate: localiza ficheros rapidamente
→ utiliza una base de datos donde guarda la localización de los ficheros (/var/cache/locate/locatedb)
→ esa base de datos la crea y actualiza el administrador con el comando updatedb