Google
Web dns.bdat.net

Ficheros y directorios (1)

Nota: Todos los script que requieran un número exacto de parámetros deben realizar la comprobación del número de parámetros

Script que dice «Es un fichero» si el argumento pasado es un fichero regular. En otro caso debe escribir «No es un fichero».

El objetivo de este script es hacer prácticas con las condiciones que proporciona bash para realizar comprobaciones del sistema de ficheros, comprobar ficheros, directorios, permisos, etc.

En primer lugar deberemos verficar el número de argumentos como veíamos en el ejemplo anterior y postriormente comprobamos si el argumento se corresponde con un fichero:

if [ $# -eq 1 ]
then
        echo "Uso: $0 fichero"
        exit
fi
if [ -f $1 ]
then
        echo "$1 es un fichero"
else
        echo "$1 NO es un fichero"
fi
              

La opción "-f" de la orden test o "[ ]" devuelve "Verdadero" si el valor que indicamos se corresponde con un fichero regular. Aconsejo un repaso a las distintas condiciones para comprobar otros tipos de ficheros como pipes, dispositivos o enlaces.

Si tenemos ficheros con nombres que contengan espacios y otro metacarácter, el argumento debería estar entre comillas dobles:

if [ $# -eq 1 ]
then
        echo "Uso: $0 fichero"
        exit
fi
if [ -f "$1" ]
then
        echo "$1 es un fichero"
else
        echo "$1 NO es un fichero"
fi