Recetas del comando find en Linux

0
585

Pensando en mi propio trabajo al usar sistemas del linux y de Unix, mucho del trabajo se basa alrededor de archivos, y cuando se está trabajando con los archivos, las herramientas como el comando find es muy útil.

Así que, he decidido juntar esta lista de ejemplos/de recetas del comando find que pondré al día de vez en cuando; en cuanto al comando find existen difrentes maneras de usarlo.

Ejemplos:

  • Cómo encontrar todos los archivos debajo del directorio actual que terminan con la extensión de .jsp:
  • find. -type  f  -name “*jsp”

  • Cómo encontrar todos los archivos con extension .jsp en el directorio de /users/al
  • find /users/al  -type  f  -name “*jsp”

  • Cómo encontrar todos los archivos (no directorios) debajo del directorio actual y ejecutanado el comando ls – l :
  • find  .   -type  f – exec ls – l {} \;

  • Cómo encontrar todos los directorios (no archivos) debajo del directorio actual y ejecutando el comando  ls  -l :
  • find .  -type d – exec ls – ld {} \;

Observe que la opción de d del comando del ls es necesario para la impresión el contenido del directorio, el cual no quiero a ver sus atributos del directorio.

Eliminacion de Archivos y Directorios.
Como buscar todos los archivos en el directorio corriente que inicien con las letras “Poop”  y que sean eliminados. Hay que tener cuidado con este comando ya que es muy peligroso y no es recomendable para los que apenas estan iniciando en este sistema de Linux o si es que se cuenta con un respaldo antes.

find  . -type  f  -name  “Poop*” – exec rm {} \;

Este comanso es aun mas peligroso, ya que encuentra todos los directorio que tienen como nombre CVS y los va eliminando junto con su contenido. Tener cuidado si no se cuenta con un respaldo previo.

find  .  -type  d -name  CVS  -exec  rm  -r {} \;

Aqui anexo algunas otras formas de usar el comando find

  • Cambiar los permisos de todos los archivos y subdirectorios
    for i in $( find . -type d ); do chmod 775 $i; done
    for i in $( find . -type f ); do chmod 664 $i; done

  • Copiar todos los archivos de los subdirectorios a una sola carpeta/folder
    for i in $( find . -type f ); do cp $i . ; done
  • Descomprimir (Unzip) todos lo archivos en subfolders
    for i in $( find . -type f ); do bzip2 -d $i; done

  • Concatenate todos los archivos sql  en todos los subfolders
     for i in $( find . -type f -name ‘*.sql’ ); do cat $i >> all.sql ; done


 

LEAVE A REPLY

Please enter your comment!
Please enter your name here