Bash verificar si el archivo no existe

Bash verificar si el archivo no existe
Bash Scripting es un lenguaje de programación que se puede usar rápidamente en Linux y otros entornos de sistemas operativos para automatizar sus tareas. Al escribir scripts bash con frecuencia necesitamos operar en archivos en el sistema de archivos. Sin embargo, si nuestro código intenta acceder a un archivo y no existe, podemos obtener un error inesperado. Por lo tanto, su mejor práctica para verificar la existencia de los archivos antes de intentar hacer referencia al archivo en un scripts bash.

Ejemplo 01

Tenemos que agregar el soporte bash en él como '#!/bin/bash '. Después de esto, hemos inicializado un 'ARCHIVO' variable con la ruta al archivo en sí 'archivo.mierda i.mi., '/home/linuxhint/file.mierda. Para verificar el archivo existe o no, utilizaremos el 'If-Then' Declaración tomando sus condiciones en los soportes de un solo cuadrado en este código de bash. Para verificar si el archivo existe, necesitamos usar el '-F' opción seguida de la variable de doble cotización "ARCHIVO" con el personaje de dólar ps. Esto es para verificar si la ruta dada al archivo contiene un archivo con el nombre 'archivo.mierda O no.

La condición termina aquí y el 'entonces' Parte de la declaración comienza. Si el archivo existe, mostrará el mensaje que el archivo 'archivo.mierda existe en la ruta dada usando el 'eco' declaración. El 'si' La declaración termina aquí con la sintaxis final 'Fi'.

#!/bin/bash
Archivo =/home/linuxhint/file.mierda
if [-f "$ archivo"]; entonces
Echo "$ el archivo existe!"
FI

Ahora, guarde su archivo de código BASH y ejecute el archivo usando la línea de comando a continuación:

archivo.mierda

Aquí está la salida al ejecutar el comando:

Linuxhint@U22: ~ $ Bash File.mierda
/home/linuxhint/file.SH existe!

Si modificamos el guión y cambiamos el 'ARCHIVO' a un archivo que no existe y vuelva a ejecutar el script no obtenemos salida del script.

Ejemplo 02

En este ejemplo, agregaremos una declaración más a la declaración if en el ejemplo anterior. De esa manera, si el archivo no existe, recibiremos un mensaje de error apropiado impreso a la salida o pantalla estándar. Aquí está el nuevo código:

#!/bin/bash
Archivo =/home/linuxhint/file.mierda
if [-f "$ archivo"]; entonces
Echo "$ el archivo existe!"
demás
echo "$ el archivo no existe!"
FI

Podemos ejecutar los scripts de la siguiente manera:

$ Bash File.mierda

Obtenemos la misma salida que antes:

Linuxhint@U22: ~ $ Bash File.mierda
/home/linuxhint/file.SH existe!

Pero ahora, si pirateamos el nombre de archivo como un archivo que no existe, recibiremos un mensaje de error adecuado:

Linuxhint@U22: ~ $ Bash File.mierda
/Home/Linuxhint/Nofile.SH no existe!

Ejemplo 03

Digamos que quieres usar el 'no' personaje, por lo que está revisando en primer lugar si el archivo no existe. Por ejemplo, si el archivo no existe, es posible que desee imprimir un mensaje de error, pero es posible que ni siquiera requiera un lo contrario en este contexto, ya que solo le importa si el archivo no existe, de lo contrario el script puede continuar como normal sin salir de un error.

Aquí está la sintaxis para usar el '!' personaje para revertir el cheque para verificar Si el archivo no existe:

#!/bin/bash
File =/home/linuxhint/nofile.mierda
si [ ! -f "$ archivo"]; entonces
echo "$ el archivo no existe!"
demás
Echo "$ el archivo existe!"
FI

Primero ejecutaremos el script con el nombre de archivo roto:

$ Bash File.mierda

La salida cuando activa la condición de error está aquí a continuación:

Linuxhint@U22: ~ $ Bash File.mierda
/Home/Linuxhint/Nofile.SH no existe!

Ahora podemos arreglar el nombre de archivo para que sea el archivo que existe:

#!/bin/bash
Archivo =/home/linuxhint/file.mierda
si [ ! -f "$ archivo"]; entonces
echo "$ el archivo no existe!"
demás
Echo "$ el archivo existe!"
FI

Aquí está la salida con el archivo que existe:

Linuxhint@U22: ~ $ Bash File.mierda
/home/linuxhint/file.SH existe!
linuxhint@u22: ~ $

Ejemplo 04

En este ejemplo, mostraremos una sintaxis rápida del shell sin escribir un script e introduciremos operadores lógicos para imprimir el éxito o los errores. Aquí está el script que puede ejecutar en la terminal:

linuxhint@u22: ~ $ [-f archivo.sh] && echo "existe el archivo" || echo "el archivo no existe"
El archivo existe
linuxhint@u22: ~ $

En el código anterior escribimos el código directamente en el terminal interactivo. Usamos una prueba condicional para verificar si el archivo existe. Devolverá 0 para el éxito. Se utilizan lógicos o lógicos y operadores para indicar qué mensaje debe imprimirse, éxito o fracaso.

Ejemplo 05

También puede utilizar un enfoque similar al que se muestra en este artículo para verificar la existencia de un directorio utilizando el '-d' opción en su condición en lugar de '-F'. Digamos que tenemos un directorio 'prueba' en nuestra carpeta de inicio y hemos estado usando el mismo script con el '-d' opción para verificarlo y mostrar el mensaje de cadena de acuerdo con la salida de condición.

Aquí está el código con el archivo de verificación del directorio 'Dir.mierda:

#!/bin/bash
Archivo =/home/linuxhint/test
if [-d "$ archivo"]; entonces
Existe el archivo $ "echo"!"
demás
Directorio de echo "El archivo $ no existe!"
FI

Para ejecutar el código ejecutar:

$ Bash Dir.mierda
linuxhint@u22: ~ $ bash dir.mierda
Directorio/Home/Linuxhint/Test existe!

Y el código de prueba negativo y la salida:

#!/bin/bash
Archivo =/home/linuxhint/test
si [ ! -d "$ archivo"]; entonces
Directorio de echo "El archivo $ no existe!"
demás
Existe el archivo $ "echo"!"
FI
linuxhint@u22: ~ $ bash dir.mierda
directorio/home/linuxhint/test no existe!

Conclusión

Se trata del uso de scripts bash para verificar si existen archivos y directorios. Además, hemos utilizado el código directo en la consola bash utilizando operaciones de prueba y operadores lógicos.