BASH: Saber si un fichero o directorio existe

En un script, para saber si un fichero existe o no, como es una comprobación, deberemos usar la estructura condicional if con uno de estos dos operadores entre los corchetes:

-d, que devolverá verdadero si el argumento es un directorio.
-f, que devolverá verdadero si el argumento es un fichero.
Así, si queremos saber si un directorio existe, por ejemplo, para no intentar crearlo de nuevo o para borrarlo en caso de que exista, podemos hacerlo con:

#!/bin/bash
directory="prueba"

if [ -d $directory ]
then
    echo "Es directorio"
else
    echo "No es directorio"
fi

Del mismo modo, podemos comprobar si es o no es un fichero con:

#!/bin/bash

filename="prueba"

if [ -f $filename ]
then
    echo "Es fichero"
else
    echo "No es fichero"
fi

Si queremos saber en la misma estructura si es fichero, si es directorio o no existe,  lo podemos hacer usando if / elif / else:

#!/bin/bash

filename="prueba"

if [ -f $filename ]
then
    echo "Es fichero"
elif [ -d $filename ]
then
    echo "Es directorio"
else
    echo "No existe"
fi

 

Un comentario en «BASH: Saber si un fichero o directorio existe»

Deja una respuesta

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