Buscar si un fichero existe o no en nuestro sistema

Tux profesor

Bien, como sabemos el shell nos permite tener un control extremo de todo nuestro sistema, a pesar de su rudeza y lo primitivo que resulta para muchos en comparación con las modernas interfaces gráficas. Pero hay que tener en cuenta que es una manera de trabajar bastante más óptima, aunque requiere unos mayores conocimientos técnicos. El problema de la GUI no es solo que tiene algunas limitaciones en comparación con el terminal, sino que además estás ejecutando una capa extra para los gráficos que consumen gran cantidad de recursos que no estarán destinados a la tarea final.

Hemos ido lanzando algunos minitutoriales de algunas de las posibilidades que se pueden obtener de algunos sencillos comandos. Este es otro de ellos, y como ves son prácticas sencillas que te pueden servir de gran ayuda en muchos casos. Pue bien, en este caso concretamente vamos a comprobar como con unos simples comandos podemos ver si un fichero o varios de ellos existen en nuestro sistema o no. Los pasos para ello son los siguientes:


[ -f /etc/httpd ] && echo "Existe" || echo "No existe"

Como ves, hemos empleado las expresiones de evaluación para ello. Básicamente lo que hemos hecho en el ejemplo, aunque tú puedes sustituirlo por otras muchas opciones manteniendo la sintaxis, es evaluar si /etc/httpd existe en nuestro sistema o no. En el caso de existir, ya que la opción -f retorna un valor verdadero (true) si existe, se mostrará un mensaje “Existe” gracias al uso del comando echo. Mientras que en caso contrario se mostrará “No existe”. Así de sencillo…

También puedes sustituir -f por otras opciones, como -e, que devolverá un valor verdadero si existe, pero no evalúa si es un fichero regular. Con -r también pasará algo parecido, pero en este caso evalúa si es un fichero leíble. Para ver si es escribible usa -w, -x para ver si es ejecutable además, y -d para ver si es un directorio… Las posibilidades son muchas. Incluso puedes usar el carácter ! para negar las acciones. Por ejemplo, para comprobar que no existe un fichero /etc/prueba:


[ ! -f /etc/prueba ] && echo "No existe"


Categorías

GNU / Linux, Recursos

Isaac

Soy un apasionado de la tecnología, F1 e informática… y me encanta compartir, pero sobre todo aprender cada día más. En definitiva me... Ver perfil ›

2 comentarios

  1.   fprietog dijo

    Ubuntu mantiene por defecto una base de datos para acelerar la búsqueda de archivos. Eso permite usar el comando locate.

    Dicha base de datos se actualiza automáticamente aunque se puede forzar su actualización con el comando sudo updatedb.

  2.   asdfa dijo

    Al usar este codigo, ¿estamos usando programación en Bash?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *