Buscar comando en Linux (buscar archivos y directorios)

0 Comments

el comando find es una de las herramientas más poderosas en el arsenal de los administradores de sistemas Linux. Busca archivos y directorios en una jerarquía de directorios basada en una expresión dada por el Usuario y puede realizar acciones especificadas por el usuario en cada archivo coincidente.

Puede usar el comando find para buscar archivos y directorios en función de sus permisos, tipo, fecha, propiedad, tamaño y más., También se puede combinar con otras herramientas como grepo sed.

find Command Syntax #

la sintaxis general del comando find es la siguiente:

  • El atributo options controla el tratamiento de los enlaces simbólicos, opciones de depuración y método de optimización.
  • El atributopath... define el directorio o directorios de inicio donde find buscará los archivos.,
  • El atributoexpression se compone de opciones, patrones de búsqueda y acciones separadas por operadores.

para buscar archivos en un directorio, el usuario que invoca el comando find necesita tener permisos de lectura en ese directorio.

echemos un vistazo al siguiente ejemplo:

Buscar Archivos por Nombre #

buscar archivos por nombre, es probablemente el más común el uso de la etiqueta find comando., Para encontrar un archivo por su nombre, use la opción -name seguida del nombre del archivo que está buscando.

por ejemplo, para buscar un archivo llamado document.pdf en el directorio /home/linuxize, usaría el siguiente comando:

para ejecutar una búsqueda que no distingue entre mayúsculas y minúsculas, cambie el -name opción con -iname:

el comando anterior coincidirá con «Document.pdf», » DOCUMENT.pdf» ..sucesivamente.,

buscar archivos por extensión #

buscar archivos por extensión es lo mismo que buscar archivos por nombre. Por ejemplo, para encontrar todos los archivos que terminen con .log.gz dentro del directorio /var/log/nginx, debe escribir:

es importante mencionar que debe citar el patrón o escapar del asterisco * símbolo con barra invertida \ para que no sea interpretado por el shell cuando se utiliza el carácter comodín.,

Para encontrar todos los archivos que no coinciden con la expresión regular *.log.gz puede utilizar el -not opción. Por ejemplo, para encontrar todos los archivos que no terminan en *.log.gz usaría:

buscar archivos por tipo #

a veces es posible que deba buscar tipos de archivos específicos, como archivos normales, directorios o enlaces simbólicos. En Linux todo es un archivo.,div>: named pipe (FIFO)

  • s: socket
  • por ejemplo, para encontrar todos los directorios en el directorio de trabajo actual , usaría:

    el ejemplo común sería cambiar recursivamente los permisos del archivo del sitio web a 644 y permisos de directorio a 755 usando el comando chmod:

    buscar archivos por tamaño #

    para buscar archivos basados en el tamaño del archivo, pase el -size parámetro junto con el criterio de tamaño.,9fdb538a6b»>: bloques de 512 bytes (por defecto)

  • c: bytes
  • w: dos bytes palabras
  • k: Kilobytes
  • M: Megabytes
  • G: Gigabytes
  • El siguiente comando para buscar todos los archivos de exactamente 1024 bytes dentro de la etiqueta /tmp directorio:

    El find comando también permite buscar los archivos que son más o menos de un tamaño especificado.,

    en el siguiente ejemplo, buscamos todos los archivos inferiores a 1MB dentro del directorio de trabajo actual. Observe el signo - símbolo antes de que el valor tamaño:

    Si desea buscar archivos con un tamaño mayor que el 1MB, entonces usted necesita para usar el plus + símbolo:

    Usted puede incluso buscar archivos dentro de un rango de tamaño., El siguiente comando encontrará todos los archivos entre 1 y 2MB:

    buscar archivos por fecha de modificación #

    el comando find puede también busque archivos en función de su última modificación, acceso o hora de cambio.

    igual que cuando se busca por tamaño, use los símbolos más y menos para «mayor que»o» menor que».

    digamos que hace unos días, modificaste uno de los archivos de configuración de dovecot, pero Olvidaste cuál., Puede filtrar fácilmente todos los archivos bajo el directorio /etc/dovecot/conf.d que termina con .conf y ha sido modificado en los últimos cinco días:

    Aquí hay otro ejemplo de filtrado de archivos basado en la fecha de modificación utilizando el -daystart opción., El comando a continuación enumerará todos los archivos en el directorio /home que se modificaron 30 o más días atrás:

    buscar archivos Por permisos #

    el -perm opción le permite buscar archivos basados en los permisos de archivo.,

    por ejemplo, para encontrar todos los archivos con permisos de exactamente 775 dentro del directorio /var/www/html, usaría:

    puede prefijar el modo numérico con menos - o barra diagonal /.

    cuando slash / se usa como prefijo, entonces al menos una categoría (usuario, grupo u otros) debe tener al menos los bits respectivos establecidos para que un archivo coincida.,

    considere el siguiente comando de ejemplo:

    el comando anterior coincidirá con todos los archivos con permisos de lectura establecidos para usuario, grupo u otros.

    si se usa menos - como prefijo, entonces para que el archivo coincida, se deben establecer al menos los bits especificados., El siguiente comando buscará archivos que tienen permiso de lectura y escritura para el propietario y el grupo y son legibles por otros usuarios:

    buscar archivos por propietario #

    para encontrar archivos propiedad de un usuario o grupo en particular, use el -user y -group opciones.

    por ejemplo, para buscar todos los archivos y directorios propiedad del usuario linuxize, debe ejecutar:

    Aquí hay un ejemplo del mundo real., Supongamos que desea encontrar todos los archivos propiedad del usuario www-data y cambiar la propiedad de los archivos coincidentes de www-data a nginx:

    buscar y eliminar archivos #

    para eliminar todos los archivos coincidentes, añada la opción -delete al final de la expresión coincidente.

    asegúrese de usar esta opción solo cuando esté seguro de que el resultado coincide con los archivos que desea eliminar., Siempre es una buena idea imprimir los archivos coincidentes antes de usar la opción -delete.

    por ejemplo, Para eliminar todos los archivos que terminan con la etiqueta .temp desde el /var/log/, se debería utilizar:

    el Uso de la etiqueta -delete opción con extrema precaución. El comando find se evalúa como una expresión y si agrega la opción -delete primero, el comando eliminará todo lo que esté debajo de los puntos de inicio que especificó.,

    Cuando se trata de directorios, find solamente puede eliminar directorios vacíos, igual que rmdir .

    conclusión #

    le hemos mostrado cómo usar el comando find con varias opciones y criterios.

    Este artículo debe darle una comprensión fundamental de cómo localizar archivos en sus sistemas Linux. También puede visitar la página de manual find y leer sobre todas las otras opciones poderosas del comando find.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *