Recorrer todos los ficheros de un directorio en Shell Script

Para listar los ficheros de un directorio usamos ls. Bien para listar los ficheros del directorio actual o bien para listar los de cualquier otro. ls nos permite listar y ordenar los ficheros de diferentes maneras. Sea la que sea la que elijamos, cuando queremos recorrer los ficheros y directorios de un directorio en un script, usaremos como base ls y recorremos el resultado con un for:

#!/bin/bash

directory="."

for item in $(ls $directory)
do
    echo $item
done

Si tenemos ficheros que contienen espacios en su nombre de fichero, puede dar lugar a error, ya que al recorrer el resultado de ls con for, toma como referencia la cadena que devuelve ls como cadena.

Para solucionarlo, podemos cambiar el separador de campo antes de hacer el ls. Lo podemos cambiar con la variable de entorno IFS:

IFS='
'

Por lo que el bucle para recorrer un directorio nos quedaría:

#!/bin/bash

directory="."
FS='
'
for item in $(ls $directory)
do
    echo $item
done

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.