Comprobar si un archivo o carpeta existe o no (y más) con ciclo IF

Hace rato no pongo nada de Bash, y es que al estar adentrándome en el maravilloso mundo de Python he olvidado un poco a este otro amigo que tanto me ayudó :)

Aquí les pongo algo a los entusiastas de Bash, como bien dice el título… les mostraré cómo comprobar si existe o no un archivo o carpeta en el sistema, solo usando: if

Vamos a crear un archivo .sh y darle permisos de ejecución, para ello basta con poner el siguiente comando en una terminal:

touch prueba.sh && chmod +x prueba.sh

Esto lo que hizo es crear el archivo (touch prueba.sh) y además darle permisos de ejecución (chmod +x prueba.sh)

Luego escribamos lo siguiente en él:

if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi

¿Qué hace esto?

Simple :D

En la primera línea -» if [ -d /opt/ ];

Aquí preguntamos, ¿existe el directorio /opt/? Sí directorio/carpeta, pues el -d significa directorio o carpeta.
Luego en caso de que exista imprimiremos en la terminal “Sí, sí existe.” (esto es la línea 2 y 3)
En caso contrario y NO exista /opt/, entonces imprimiremos “No, no existe” (línea 4 y 5)
Luego en la última línea (la número 6) cerramos el if y listo.

Hagan la prueba, les mostrará que /opt/ sí existe.

Si desean que les muestre el otro texto (el de que no existe) cambien /opt/ por cualquier otra carpeta que no exista en su sistema, por ejemplo: /asd/

Como ven, -d nos sirve para saber si el directorio existe, bien ahora si cambiamos -d por -f es para comprobar existencia de archivos (-d = directorio, -f = file/archivo)

Por ejemplo:

if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi

Aquí el listado de las opciones:

-d -» Comprobar si existe determinado directorio

-f -» Comprobar si existe determinado archivo

-w -» Comprobar si determinado archivo tiene permisos de escritura

-x -» Comprobar si determinado archivo tiene permisos de ejecución.

Y bueno no hay mucho más que agregar :)

Sé que esto le será muy útil e interesante para aquellos que gustan de programar en Bash ;)

Saludos