Cómo utilizar los operadores de prueba de archivos de Bash en Linux

Los operadores de prueba de archivos se utilizan en Linux para comprobar y verificar los atributos de los archivos, como la propiedad o si son un enlace simbólico. Cada operador de prueba tiene un propósito específico. Los operadores más importantes son -e y -s. En este artículo, aprenderás a comprobar archivos utilizando la sentencia if seguida de algunos operadores de prueba importantes en Linux.

En este artículo cubriremos los siguientes operadores de prueba:

  • Operador de prueba If -e
  • Operador de prueba If -s
  • Operador de prueba If -d
  • Si -h operador de prueba
  • Si -r operador de prueba
  • Si -O operador de prueba

Uso del operador if -e

El objetivo principal de utilizar el operador de prueba if-e en Centos 8 es verificar si el archivo específico reside en el directorio o no. Por lo tanto, si quieres verificar la existencia de un archivo utilizando if-e, tienes que seguir los siguientes pasos

Crea dos nuevos archivos con los nombres Test.txt y FileTestOperators.sh respectivamente. La extensión .sh pertenece al archivo bash. Puedes crear ambos en el directorio principal directamente, o con el siguiente comando:

$ touch Test.txt
$ touch FileTestOperators.sh

Si quieres autentificar si el archivo se crea o no, utiliza el siguiente comando:

$ ls -l Test.txt

Crea un archivo de prueba

Crear archivo de operadores

Puedes ver que ambos archivos se han creado en el directorio personal.

Archivos en el explorador de archivos

Abre el archivo FileTestOperators.sh y escribe en él el script que se muestra en la siguiente imagen. Hemos inicializado un archivo variable y le hemos pasado el archivo Test.txt como valor. En la sentencia If, hemos utilizado el operador -e para confirmar la existencia del archivo Test.txt mediante el archivo variable.

Guión 1

Ejecuta el comando mencionado a continuación para comprobar la existencia del archivo:

$ bash FileTestOperators.sh

Como el archivo existe en el directorio, la salida será True.

ejecuta el script 1

Uso del operador if -s

El objetivo de utilizar el operador de prueba if-s en Centos 8 es verificar si el archivo especificado existe y está vacío o no. Por lo tanto, si quieres verificarlo utilizando if-e, tienes que seguir los siguientes pasos:

Utilizaremos los mismos archivos con un pequeño cambio en el archivo FileTestOperators.sh. Sólo tienes que cambiar el operador -s en lugar de -e en la sentencia if.

guión 2

Ejecuta el comando mencionado a continuación para comprobar si el archivo está vacío o no:

$ bash FileTestOperators.sh

Como el archivo está vacío, la salida generada por el operador -s es Falso

Ejecuta el script 2

Ahora tienes que añadir algo de texto en el archivo Test.txt para modificar el resultado, como se muestra en la siguiente imagen.

Archivo de prueba

Ejecuta de nuevo el comando mencionado más abajo:

$ bash FileTestOperators.sh

Como el archivo no está vacío esta vez, la salida generada por el operador -s será Verdadera, como se muestra en la imagen.

Vuelve a realizar la prueba

También puedes utilizar los dos comandos siguientes para verificar que el archivo está vacío:

$ cat Test.txt
$ file Test.txt

El archivo está vacío

Uso del operador if -d

El objetivo de utilizar el operador de prueba if-d en Centos 8 es verificar si el archivo específico es en sí mismo un directorio o no. Por tanto, si quieres comprobarlo utilizando if-d, debes seguir los pasos que se indican a continuación:

Aquí, de nuevo, estamos utilizando los mismos dos archivos con un ligero cambio en el archivo bash FileTestOperators.sh. Tenemos que cambiar el operador -s por el operador -d en la sentencia if, como se muestra en la siguiente imagen.

script de prueba 4

Así, ejecuta el comando mencionado a continuación para comprobar si el archivo es un directorio o no:

$ bash FileTestOperators.sh

Como sabemos que el archivo Test.txt no es un directorio, por eso el operador -d da como resultado Falso Test.txt no es un directorio, como se muestra en la siguiente imagen.

ejecutar la prueba

Uso del operador if -h

El operador de prueba if-h se utiliza para comprobar si el archivo es un enlace simbólico (suave) o no. Por lo tanto, si quieres verificar la existencia de un archivo utilizando if-h, tienes que seguir los siguientes pasos

Crea un nuevo archivo con el nombre ArchivoSimbólico.sh. Puedes crearlo en el directorio principal directamente, o con el siguiente comando:

$ touch SymbolicFile.sh

archivos de prueba

Puedes ver el archivo SymbolicFile.sh en el directorio personal, como se muestra en la siguiente imagen.

Enlace simbólico

Puedes listar todos los directorios y archivos utilizando el comando ls. Puedes ver que el archivo SymbolicFile.sh también aparece en la lista como se muestra en la imagen.

$ ls –l

enlace simbólico

Crea un enlace simbólico utilizando un comando de enlace simple. En este comando, -s se refiere a un enlace suave, SymbolicFile.sh es un archivo cuyo enlace se creará, y NewSymbolicFile.sh es un enlace simbólico.

$ ln -s SymbolicFile.sh NewSymbolicFile.sh

Prueba de enlaces simbólicos

Vuelve a enumerar todos los directorios y archivos. Puedes ver que se ha creado un enlace simbólico.

Ejecutar la prueba

Así pues, volvemos a utilizar el archivo bash FileTestOperators.sh con un ligero cambio.Cambia el operador -d por el operador -h en la sentencia if. Esta vez también tenemos que cambiar el nombre del archivo. Tenemos que utilizar un archivo que sea un enlace simbólico en sí mismo, por ejemplo, NuevoArchivoSimbólico.sh.

Comprueba los enlaces simbólicos

Puedes ver ambos archivos en la siguiente imagen.

Archivos

Ahora ejecuta el siguiente comando:

$ bash FileTestOperators.sh

Como sabemos que el archivo NewSymbolicFile.sh es un enlace simbólico, por eso el operador -h da como resultado True NewSymbolicFile.sh es un enlace simbólico, como se muestra en la siguiente imagen.

Ejecuta el test de enlaces simbólicos

Uso del operador if -r

El operador de prueba if -r se utiliza para comprobar la legibilidad del archivo, por ejemplo, si el archivo es legible o no. Así que si quieres comprobarlo utilizando if-r, tienes que seguir estos pasos:

De nuevo, estamos utilizando el archivo bash Test.txt y FileTestOperators.sh con un ligero cambio. Cambia el operador -h por el operador -r en la sentencia if y asigna el archivo Test.txt como valor a la variable archivo.

Comprueba si el archivo es legible

Ahora ejecuta el siguiente comando:

$ bash FileTestOperators.sh

Como sabemos que el archivo Test.txt es legible, el operador -r da como resultado ¡Verdadero! Test.txt es legible.

Realiza la prueba de legibilidad

Nota: Utiliza los operadores -w y -x respectivamente para verificar si el archivo es escribible y ejecutable o no.

Uso del operador if -O

La finalidad del operador if -O de prueba es comprobar si el archivo es propiedad de un usuario actual o no. Por lo tanto, para comprobarlo utilizando if -O, tienes que seguir estos pasos:

De nuevo, estamos utilizando el archivo bash Test.txt y FileTestOperators.sh con un pequeño cambio. Cambia el operador -r por el operador -O en la sentencia if y asigna el archivo Test.txt como valor a la variable file.

Prueba de propiedad en bash

Ahora ejecuta el siguiente comando:

$ bash FileTestOperators.sh

Como sabemos que el archivo Test.txt ya es propiedad del usuario actual, el operador -O da como resultado True Test.txt es propiedad de un usuario actual.

Ejecutar la prueba

Conclusión

En este artículo, has conocido los más importantes y diferentes operadores de prueba de archivos y su funcionamiento en Centos 8. Espero que ahora seas capaz de crear archivos, comprobar la existencia de archivos, comprobar la legibilidad de los archivos, comprobar la propiedad de los archivos y hacer enlaces blandos. Los usuarios pueden sentirse tranquilos después de seguir este artículo a fondo.

También te podría gustar...