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
Puedes ver que ambos archivos se han creado en el directorio personal.
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.
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.
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.
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
Ahora tienes que añadir algo de texto en el archivo Test.txt para modificar el resultado, como se muestra en la siguiente imagen.
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.
También puedes utilizar los dos comandos siguientes para verificar que el archivo está vacío:
$ cat Test.txt
$ file Test.txt
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.
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.
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
Puedes ver el archivo SymbolicFile.sh en el directorio personal, como se muestra en la siguiente imagen.
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
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
Vuelve a enumerar todos los directorios y archivos. Puedes ver que se ha creado un enlace simbólico.
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.
Puedes ver ambos archivos en la siguiente imagen.
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.
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.
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.
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.
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.
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.