Herramientas de usuario

Herramientas del sitio


linux:herramientas

¡Esta es una revisión vieja del documento!


Herramientas de Linux

Expresiones regulares

find: búsqueda de archivos

El comando find permite buscar en uno o varios árboles de directorios , archivos en base a unos criterios y aplicarles un tratamiento según una acción especificada.
Sintaxis: find [ruta/s] [parámetro/s de selección] [acción]. Además las expresiones (parámetros) de selección pueden evaluarse como operaciones booleanas, de forma que deban cumplirse diferentes condiciones para realizar la búsqueda.

  • Rutas: Se especifica la ruta a partil de la cual se recorrerá su árbol de directorios para buscar los archivos especificados. Si hay varias se separan por espacios. Si no se especifica, se toma el directorio actual.
  • Parámetros (o expresiones) de selección: Empiezan con un guión - seguido de sus parámetros. Algunos de los principales son:
    • -name [motivo]: El comando find busca por el nombre del archivo. El shell interpreta el comando, que puede usar caracteres genéricos, por lo que para evitar confusiones se recomienda indicar el motivo entre apostrofes. Ejemplo: buscar los archivos que empiezan por s en el árbol de directorios que comienza en /usr =⇒ find /usr -name 's*' 2>/dev/null.
    • -size (+-)[tamaño] [b,c,k]: Busca los archivos en función de su tamaño. Especificando un signo + o -, se especifica si el valor a buscar es mayor o menor que el indicado (si no se pone, interpreta que es exactamente ese valor). El número puede indicar diferentes tamaños de bloques, en función de la letra:
      • b especifica bloques de datos de 512 bytes (por defecto).
      • c especifica bloques de datos de 1 byte.
      • k, M o G especifica bloques de datos de 1 KB, 1MB o 1GB respectivamente.
    • -mtime (+-)[días]: Busca por la última fecha de modificación. Un signo + o -, se especifica si el valor a buscar es mayor o menor que el indicado (si no se pone, interpreta que es exactamente ese valor).
    • -perm [permisos]: Puede buscarse archivos en función de sus permisos. Pueden indicarse tanto de forma octal, como simbólica.
    • -newer [archivo]: Busca los archivos cuya fecha de modificación sea más reciente que el archivo de referencia pasado como parámetro. Muy útil para la realización de copias de seguridad.
    • -user [usuario]: Permite recuperar los archivos pertenecientes a un usuario. Se puede indicar el usuario por su nombre, o por su UID.
    • -group [grupo]: Permite recuperar todos los archivos pertenecientes a un grupo. Se puede indicar el grupo por su nombre, o por su GID.
  • Operadores: Operadores que permiten evaluar de forma booleana varias expresiones para realizar las búsquedas:
    • -a o -and AND lógico entre dos expresiones.
    • -o u -or OR lógico entre dos expresiones.
    • ! o -not negación lógica.
    • (…) los paréntesis permiten definir el orden de los operadores lógicos. Deben llevar \ delante, ya que tienen un significado especial para el shell.
  • Acciones:
    • -print: Acción predeterminada. Imprime en pantalla los resultados de la búsqueda.
    • -exec: Se ejecuta un comando externo del shell pasado como argumento y seguido de llaves {}, entre las que se especifica la ruta del archivo encontrado en el comando a ejecutar. Debe terminar con \;. Ejemplo: Borrar todos los archivos cuyo nombre empieze por s en el directorio actual: find . -name 's*' -exec rm {} \;
    • -ok: Idéntica a exec, con la excepción de que hay que confirmar la ejecución del comando externo, para cada archivo encontrado.
    • -ls: Muestra los detalles de los archivos encontrados, como lo haría el comando ls -ldi. Equivale al comando **find . -exec ls -ldi {} \;

grep: búsqueda en archivo por filtro

linux/herramientas.1545399265.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki