Buscar

Linux: Saber si existe un directorio o fichero

Con scripts de bash de Linux, podemos necesitar saber si existe un directorio o fichero para ejecutar una cosa u otra.

Para saber si existe un directorio o fichero, podemos utilizar la sentencia if.

Con la sentencia if, podemos especificar como parámetro si existe o no un directorio o fichero.

Con el parámetro -d: Especificaremos un directorio.

Con el parámetro -f: Especificaremos un fichero.

Veamos un ejemplo de cada caso:

Linux: Saber si existe un directorio


#!/bin/bash

DIRECTORIO=/root1

if [ -d "$DIRECTORIO" ]
then
   echo "El directorio ${DIRECTORIO} existe"
else
   echo "El directorio ${DIRECTORIO} no existe"
fi


En la variable: DIRECTORIO, definimos un directorio que será verificado si existe o no con la sentencia: if -d

Linux: Saber si existe un fichero


#!/bin/bash

FICHERO=/etc/passwd

if [ -f $FICHERO ]
then
   echo "El fichero $FICHERO existe"
else
   echo "El fichero $FICHERO no existe"
fi


En la variable: FICHERO, definimos un fichero que será verificado si existe o no con la sentencia: if -f

A continuación, disponemos del siguiente vídeo, donde podemos ver el detalle de funcionamiento de forma visual:


Podéis examinar y suscribiros al canal de Youtube de SYSADMIT en el siguiente enlace:

https://www.youtube.com/c/SYSADMIT
 

Aquí también tenéis explicado cómo saber si un fichero está vacío:

Linux: Comprobar si un fichero esta vacío (SYSADMIT.com)

5 comentarios:

  1. error si el fichero tiene entre su nombre espacios, como se solucionaría, obviamente sin cambiar el nombre al archivo, gracias por tu respuesta

    ResponderEliminar
    Respuestas
    1. ¿Has probado de indicar el nombre con espacios con comillas?

      Un saludo,

      Xavi.

      Eliminar
  2. Hola, buen contenido y me ayuda bastante.
    por cierto, como podria crear un archivo si este no existe? con que comando podria?
    gracias!

    ResponderEliminar
    Respuestas
    1. Hola Sergio,

      Hay muchas formas para hacerlo, una de ellas, con el comando: touch

      Saludos,

      Xavi.

      Eliminar