Cómo comprobar si existe un archivo en bash

How Check If File Exists Bash



Hay varias formas de comprobar la disponibilidad de un archivo en Linux. El comando de prueba en las secuencias de comandos bash es uno de los enfoques clave para verificar la existencia de un archivo.
El enfoque de esta guía es discutir la existencia de un archivo en su sistema a través de scripts bash:

Cómo verificar la existencia del archivo usando scripts bash:

1) Ingresando el nombre del archivo en la terminal:







En primer lugar, necesitamos crear un archivo de script bash, use el comando que se menciona a continuación:



$tocartestfile.sh

El nombre del archivo que creé es testfile.sh, la extensión .sh indica el archivo de script de shell:







Abra testfile.sh en cualquier editor de texto. Luego escriba el script, guárdelo presionando guardar.

Una forma es buscar un archivo solicitando un nombre de archivo al usuario en la terminal.



Usar -F para comprobar la existencia del archivo.

Escribe el siguiente guión:

#! / bin / bash
echo 'Ingrese su nombre de archivo'
leernewfile1
si [ -F '$ newfile1' ]
luego
echo 'Archivo encontrado'
demás
echo 'Archivo no encontrado'
ser

Regrese a la terminal y ejecute el archivo para imprimir la salida:

./filename.sh

El mensaje de permiso denegado se mostraría en la terminal.

Hágalo ejecutable ejecutando el comando mencionado a continuación:

$chmod+x testfile.sh

Ingrese el nombre del archivo e imprimirá la salida:

2) Ingresando el nombre del archivo mientras escribe el script:
Otra forma de encontrar un archivo dando el nombre del archivo mientras escribe el script. Tenemos tres formas de comprobar la disponibilidad del archivo. El primero usa el comando test, el segundo usa if con una expresión entre corchetes, y el tercero también usa if pero dobles corchetes como se indica a continuación:

  1. prueba de EXPRESIÓN.
  2. si [EXPRESIÓN]
  3. si [[EXPRESIÓN]]

Vamos a entenderlo con ejemplos:

1) prueba [Expresión]
Copie el script dado y péguelo en el editor, guárdelo:

#! / bin / bash
nombre del archivo= archivo1
si prueba -F '$ nombre de archivo';
luego
echo '$ archivoha encontrado.'
demás
echo '$ archivono se ha encontrado '
ser

Producción:

Como no existe tal archivo en mi directorio, el código muestra el mensaje Archivo no encontrado.

2) si [Expresión]

Copie el siguiente script para verificar si el archivo existe o no:

#! / bin / bash
nombre del archivo= miarchivo.txt
si [ -F '$ nombre de archivo' ];
luego
echo '$ nombre de archivoha encontrado.'
demás
echo 'nombre de archivo no se ha encontrado'
ser

Producción:

3) si [[Expresión]]

Copie el script escrito a continuación y péguelo en la terminal:

#! / bin / bash
nombre del archivo= archivo de prueba
si [[ -F '$ nombre de archivo' ]];
luego
echo '$ nombre de archivoha encontrado.'
demás
echo '$ nombre de archivono se ha encontrado '
ser

Producción:

Para comprobar el directorio:

3) Ingresando el nombre del directorio mientras escribe un script

Utilizar el -D bandera para comprobar la existencia de un directorio.

En el script que se menciona a continuación, dir11 es la variable en la que almacena el archivo que está encontrando; en este ejemplo, quiero comprobar que el nombre del directorio testDir existe o no.

#! / bin / bash
dir11= testDir
si [ -D '$ dir11' ]
luego
echo 'Directorio encontrado'
demás
echo 'No se ha encontrado el directorio'
ser

Producción:

2) Ingresando el nombre del archivo en la terminal:
Cuando ejecuta el comando en la terminal para verificar si el directorio existe o no, debe ingresar el nombre del directorio que está buscando:

#! / bin / bash
echo 'escriba el nombre de su directorio.'
leerDir1
si [ -D 'Dir1' ]
luego
echo 'directorio ha sido encontrado'
demás
echo 'directorio no encontrado'
ser

Producción:

Verificando el archivo sin usar la instrucción if:

El comando de prueba se puede ejecutar sin la instrucción if. Solo mostrará la salida si el archivo existe; de lo contrario, no habría salida:

Escribir guión:

  1. prueba -Fmyfile.txt&& echo 'archivo ha sido encontrado'

  2. [ -Fmyfile.txt] && echo '$ archivoha sido encontrado.'

  3. [[ -Fmyfile.txt]] && echo '$ archivoha sido encontrado.'

Producción:

Verificando el directorio sin usar la instrucción if:

Utilice las declaraciones que se mencionan a continuación para comprobar que un directorio existe o no:

  1. [[ -DtestDir]] && echo 'directorio existe'

  2. 2) [ -DtestDir] && echo 'directorio existe'

Producción:

Comprobación de varios archivos / directorios:

1) Comprobación de varios archivos con declaraciones if:
Use la bandera -a para verificar la existencia de varios archivos en lugar de usar declaraciones if / else anidadas:

#! / bin / bash
si [ -Fnew_file.txt-a -Fnewfile.txt];luego
echo Ambos archivos existen.
ser

Otra forma es:

#! / bin / bash
si [[ -Fnew_file.txt&& -Fnewfile.txt]];luego
echo Ambos archivos existen.
ser

Producción:

2) Comprobación de varios archivos sin utilizar la declaración if:
Use la siguiente declaración para verificar varios archivos simultáneamente 1 sin usar si:

  1. [[ -Fnew_file.txt&& -Fnewfile.txt]] && echoAmbos archivos salen.

  2. [[ -Fnew_file.txt&& -Fnewfile.txt]] && echoAmbos archivos salen.

Producción:

Conclusión:

Este artículo ha mostrado cómo usar scripts bash para verificar un archivo o directorio. Usamos diferentes opciones para verificar la disponibilidad de un archivo. En primer lugar, usamos el comando de prueba con diferentes banderas. Luego aprendimos el uso de if, anidado if-else, y sin las instrucciones if para verificar el archivo o directorio. También analizamos cómo comprobar varios archivos o directorios.