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
Pingback: Cómo saber si un fichero tiene permisos de ejecución – Linux en Español