La Función de este Blog

Todos tenemos una razón de existir, y la razón de este blog no es la de duplicar información de otras webs, sino la de servirte de guía hacia ella.

Aquí podrás encontrar todas las utilidades y funciones que vaya necesitando y encontrando para mis proyectos webs.

Espero que os sea de ayuda.

Saludos

martes, 8 de mayo de 2012

Bash. Recorrer un directorio recursivamente

Buenas,

he tenido que hacer un script que recorriera un directorio recusivamente, me ha dado un poco la lata, así que lo dejo por aquí para que os sea de ayuda.

# recogemos el directorio a recorrer
DIR=$@   
# entramos a él 
cd $DIR
# y llamamos a la función recorrer_directorio pasandole 
# como parámetro el directorio
recorrer_directorio $DIR
# la definición de la función

recorrer_directorio()
{
 dir=$(dir -1)
 for file in $dir;
 do
# comprobamos que la cadena no este vacía
  if [ -n $file ]; then
   if [ -d "$file" ]; then

# si es un directorio, accedemos a él, 
# llamamos recursivamente a la función recorrer_directorio
    echo "DIR: " $file
    cd $file
    recorrer_directorio ./
# una vez que hemos terminado, salimos del directorio (IMPORTANTE)
    cd ..
      else
# dividimos la extensión del nombre del fichero y lo mostramos en pantalla
    extension=${file##*.}
    path_and_name=${file%.*}
    echo "Fichero: "$path_and_name"__".$extension
   fi;
  fi;
 done;
}

Espero que os sea de ayuda.

Nos vemos!!

4 comentarios:

  1. Gracias, añado una linea mas para los que tengan problemas con los directorios con nombres con espacios de por medio. Para ello hay que añadir:
    IFS='
    '
    delante del for, al menos para que funcione en linux.

    ResponderEliminar