Administración de Sistemas

Jueves, 24 Febrero 2022 11:25

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

Written by 
Rate this item
(0 votes)

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?

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.

Fuente: https://blog.desdelinux.net/

Read 2639 times