Cómo verificar si un archivo no existe en Bash

Cómo verificar si un archivo no existe en Bash

Bash, o Bourne Again Shell, es un shell UNIX popular utilizado para secuencias de comandos y automatización de tareas en Linux, macOS y otros sistemas similares a UNIX. Una tarea común en las secuencias de comandos bash es verificar si un archivo no existe. Esto puede ser útil para tareas como la creación de archivos nuevos solo si aún no existen, omitiendo los archivos existentes durante una transferencia de archivos o activando acciones específicas basadas en la presencia de archivos. En este artículo, exploraremos diferentes formas de verificar si un archivo no existe en Bash.

Método 1: usando el 'prueba' dominio

El 'prueba' El comando en Bash es una utilidad simple y incorporada que evalúa las expresiones condicionales. Se puede utilizar para verificar varias condiciones, incluida la existencia de un archivo. Para verificar si un archivo no existe, use la siguiente sintaxis:

Copiar código si prueba ! -e file_path entonces # realizar acciones si el archivo no existe FI
12345Copiar prueba CodeIF ! -e file_paththen # realizar acciones si el archivo no existe

En este ejemplo, el '-mi' verificación de la bandera para la existencia del archivo, mientras que el '!' niega el resultado. Si el archivo no existe, los comandos dentro del 'si' el bloque se ejecutará.

Método 2: Uso de soportes cuadrados

El 'prueba' El comando también se puede representar con soportes cuadrados ('[' y ']'), que es más común en los guiones de Bash. Para verificar si un archivo no existe usando soportes cuadrados, use la siguiente sintaxis:

si [ ! -e file_path] entonces # realizar acciones si el archivo no existe FI
1234si [ ! -e file_path] entonces # realizar acciones si el archivo no existe

Esto es funcionalmente equivalente al 'prueba' Ejemplo de comando arriba.

Método 3: Uso de soportes cuadrados dobles

Bash también es compatible con los soportes de doble cuadrado ('[[' y ']]') para expresiones condicionales. Esta es una sintaxis más moderna y preferida para muchos usuarios, ya que proporciona características adicionales y es más indulgente con el espacio. Para verificar si un archivo no existe usando soportes cuadrados dobles, use la siguiente sintaxis:

si [[ ! -e file_path]] entonces # realizar acciones si el archivo no existe FI
1234si [[ ! -e file_path]] entonces # realizar acciones si el archivo no existe

Esto es funcionalmente equivalente a los ejemplos anteriores, pero utiliza la sintaxis de doble soporte cuadrado más moderno.

Método 4: usando el 'si'Comando con el'-F' bandera

En algunos casos, es posible que desee verificar específicamente la inexistencia de un archivo regular (a diferencia de un directorio u otros tipos de archivos). Para hacer esto, use el '-F' bandera en lugar de la '-mi' bandera. Esto solo devolverá verdadero si el archivo no existe o no es un archivo regular:

si [ ! -f file_path] entonces # realizar acciones si el archivo no existe o no es un archivo regular Fi
1234si [ ! -f file_path] entonces # realizar acciones si el archivo no existe o no es un filefi normal

Conclusión

En este artículo, hemos discutido cuatro métodos diferentes para verificar si un archivo no existe en Bash. Estos métodos pueden usarse para varias tareas, como crear archivos nuevos solo si aún no existen o activar acciones específicas basadas en la presencia de archivos. Dependiendo de sus preferencias y requisitos, puede elegir cualquiera de los métodos descritos anteriormente para verificar la inexistencia de un archivo en sus scripts bash.