Ir al contenido España-Español
HP.com España principal Productos y Servicios Soporte y Drivers Soluciones Cómo Comprar
» Contactar con HP
Más opciones
HP.com España principal
Utilización de HP-UX: Servidores y estaciones de trabajo HP > Capítulo 2 Utilización de los archivos y los directorios

Búsqueda de archivos con el comando find

» 

Documentación técnica

Libro completo en PDF
» Comentarios
Aquí empieza el contenido

 » Tabla de contenido

 » Glosario

 » Índice

Puede utilizar el comando find para buscar en un directorio y los subdirectorios correspondientes archivos que cumplan determinados criterios. A continuación, puede ejecutar un comando en los archivos encontrados.

Búsqueda de archivos que se ajusten a un modelo

Aunque la sintaxis de find puede ser compleja, puede ayudarle a utilizar HP-UX de forma más productiva. Es un comando eficaz y flexible. No obstante, puede ejecutarse lentamente, sobre todo si se realizan búsquedas en muchos directorios.

Supongamos que desea mostrar todos los archivos del directorio actual y los subdirectorios pertinentes que empiecen por la letra "d". Escriba:

find(1)

$ find . -name 'd*'

El punto (.) hace que find busque el directorio actual y sus subdirectorios. La opción -name seguida de un nombre de archivo o un modelo de nombre de archivo (en este caso d*) le indica a find que busque todos los nombres de archivo que coincidan con dicho modelo. En este ejemplo, find busca todos los nombres de archivo que empiecen por d.

Observe que d* se coloca entre comillas sencillas 'd*'. Si utiliza un modelo de nombre de archivo en el comando find, debe colocarlo entre comillas sencillas para que el shell lo interprete correctamente.

Búsqueda de archivos que sean más nuevos que un archivo determinado

Supongamos que desea ver todos los archivos modificados después de un archivo determinado. Para mostrar todos los archivos que sean más nuevos que miarchivo en el directorio /home/luisa y los subdirectorios correspondientes, escriba:

$ find /home/luisa -newer miarchivo

Este ejemplo se lee del modo siguiente: en el directorio /home/luisa y los subdirectorios correspondientes, buscar todos los archivos modificados después de miarchivo. (Para determinar cuándo se ha producido la última modificación de un archivo, utilice el comando ll.)

Ejecución de comandos en los archivos

Puede ejecutar comandos en los archivos encontrados con el comando find. Supongamos que desea eliminar todos los archivos que presenten la extensión .tmp en el directorio actual y los subdirectorios correspondientes. Escriba:

$ find . -name '*.tmp' -exec rm {} \;

En este ejemplo se buscan y muestran en la pantalla todos los archivos del directorio actual y los subdirectorios correspondientes que terminen en .tmp y, a continuación, se eliminan dichos archivos. La opción -exec hace que el siguiente comando (rm) se ejecute. Las llaves { } indican los archivos encontrados con el comando find. El punto y coma situado al final de la cadena exec está precedido de una antibarra (\;).

Utilización de operadores lógicos

La sintaxis del comando find incluye los operadores lógicos booleanos NO, Y y O.

Para buscar archivos que no se ajusten a un modelo específico, utilice el operador lógico NO, el signo de exclamación (!). Después de utilizar este operador, debe utilizar opciones para definir los atributos de archivo, como el nombre de archivo. A continuación, se buscan los archivos que no tengan los atributos que haya especificado.

Por ejemplo, para buscar todos los archivos del directorio /tmp que no sean de luisa, utilice este comando:

$ find /tmp \( ! -user luisa \)

La antibarra \ precede a los paréntesis para que el shell no los interprete como caracteres especiales.

Para buscar archivos que tengan dos atributos distintos, utilice el operador lógico Y, expresión -a expresión. Por ejemplo, para buscar todos los directorios de / que sean de luisa, utilice este comando:

$ find / \( -type d -a -user luisa \)

Para buscar archivos que tengan cualquiera de los dos atributos o ambos, utilice el operador lógico O, expresión -o expresión. Por ejemplo, para eliminar todos los archivos que terminen en .o o que se llamen a.out y a los que no se haya obtenido acceso durante una semana, utilice este comando:

$find / \( -name a.out -o -name '*.o' \) -atime +7 -exec rm {} \;

Para obtener más información:

Consulte la página de manual find(1) para obtener más información sobre la utilización del comando find.

Versión para imprimir
Declaración de privacidad El uso de este sitio implica la aceptación de sus términos de uso
© Hewlett-Packard Development Company, L.P.