Cómo verificar si una ruta es un directorio o algo más en el script bash

Cómo verificar si una ruta es un directorio o algo más en el script bash

Estamos intentando desarrollar un script Ubuntu muy básico que nos permita proporcionar la información, ya sea un nombre de archivo o tal vez una carpeta. ¿Cómo puedo verificar si existe una carpeta dentro de un script de shell debajo de las máquinas virtuales de Linux o UNIX?? O cómo veo si existe un archivo? ¿Cómo distinguirá un usuario si la ruta mencionada es un directorio o un archivo?? Entonces, tengamos algunos ejemplos en un guión bash para elaborar este concepto. Asegúrese de iniciar sesión desde su sistema primero. Estamos utilizando Ubuntu 20.04. Después del inicio de sesión, abra su aplicación de consola para realizar ejemplos.

Ejemplo 01:

Para la apertura del caparazón, intente "Ctrl+Alt+T". Creación de un archivo bash que comienza primero con un ejemplo simple de verificación si la ruta mencionada en un archivo bash es un archivo o directorio. Para crear un archivo de código bash, escriba "toque" en el terminal al mencionar el nombre de un archivo con el ".mierda" extensión. Entonces, hemos nombrado el archivo "prueba.mierda". Presione la llave "Ingresar"Para procesar la consulta.

Prueba de $ touch.mierda

Puede encontrar fácilmente el archivo bash recién creado dentro del directorio de inicio. Para agregarle un código bash, necesitamos abrirlo en algún editor. Entonces, hemos estado utilizando un editor GNU incorporado de Ubuntu 20.04. Por lo tanto, hemos probado la consulta debajo de un caparazón y la abrimos en un editor.

$ nano prueba.mierda

El archivo se ha lanzado en un editor. Escriba el script que se muestra a continuación en él. En primer lugar, agregue la extensión de Bash en el archivo como "#!/bin/bash ". Hemos declarado una nueva variable "V1" y le han asignado una "ruta" de un archivo como su valor. Está claro en la ruta que indica algunos archivos de Bash. La declaración "si" se ha inicializado. Dentro de los aparatos ortopédicos [], tenemos que usar la bandera de "-d" que representa el directorio dentro de su parte de condición. Verificará si el valor variable mencionado es un directorio o algo más. Si la condición cumple, ejecutará la parte "entonces" y la pantalla "$ V1 es un directorio". De lo contrario, ejecutará la parte más de la instrucción "si" y mostrar "$ v1 es un archivo" en el terminal de shell. La "FI" establece que la declaración "si" ha terminado aquí. Después de guardar este código de bash, volveremos a la consola a través de "Ctrl+S" y "CTRL+X"Consecutivamente.

Ahora el tiempo es ejecutar el archivo bash "prueba.mierda. Por lo tanto, hemos utilizado la instrucción bash en nuestra consola con el nombre del archivo para verificar la salida. La salida para esta instrucción muestra que la ruta mencionada en el archivo está especificando un archivo. Por lo tanto, podemos decir que la parte "más" debe haber sido ejecutada su tiempo.

Prueba de $ bash.mierda

Ejemplo 02:

Veamos el resultado para un directorio esta vez. Esta vez, veremos cómo funciona la bandera "-d" en una variable que contiene una ruta para un directorio. Entonces, hemos abierto el archivo "Prueba.SH "nuevamente en el editor a través de la consulta" nano "en el shell.

$ nano prueba.mierda

Después de abrirlo, hemos actualizado el valor de la variable "V1" y cambiamos la ruta a una ruta de directorio. Hemos reemplazado el archivo "archivo.SH "con un directorio" Pictures/". El script bash restante es el mismo en todo el archivo en un editor. Debe guardar simplemente y rápidamente el código de bash actualizado y salir del editor usando "Ctrl+S" y luego "Ctrl+X" después de eso.

Entonces, ejecutemos nuestro archivo nuevamente. Para la ejecución, la misma consulta anterior se ha utilizado en la consola. Esta vez, la ejecución muestra que la ruta mencionada en el script bash es un directorio dentro del directorio de inicio de Ubuntu 20.04.

Prueba de $ bash.mierda

Ejemplo 03:

En los dos ejemplos anteriores, ha visto cómo usar un indicador "-d" para ver si la variable de ruta mencionada es un directorio o no. Esta vez, utilizaremos otra bandera, "-f", en nuestro ejemplo, especificando si la ruta mencionada es un archivo o no. Por otro lado, utilizaremos una declaración anidada "if-else" en nuestro código bash para usar las banderas "-d" y "-f". Hemos abierto la "prueba.Archivo SH "en el editor GNU a través de la terminal utilizando la instrucción" nano "una vez más.

$ nano prueba.mierda

Después de abrir el documento bash, hemos escrito el script bash a continuación en el que. Se agregó la extensión BASH e inicializó una variable V1, que contiene una ruta de archivo como su valor. Además, la declaración anidada "if-else" se ha utilizado correctamente para verificar si la ruta de una variable es un archivo o un directorio. Entonces, dentro de la primera declaración, hemos mencionado una condición para verificar si el valor variable es un directorio a través del indicador "-d". Si la condición cumple, imprimirá "$ V es un directorio"; de lo contrario, la otra parte de una declaración será compilada. Dentro de la parte "más", hay otra declaración de "if-else" mencionada. Dentro de la parte "if" de esta declaración, la condición se ha utilizado para verificar si la ruta variable "V" contiene un archivo o no a través del indicador "-f". Si la ruta contiene un archivo, imprimirá que "$ V es un archivo"; de lo contrario, la declaración de eco de la parte "más" se compilará en la terminal.

Después de guardar el código, este es un momento para compilar el script bash a través de una consulta bash. Por lo tanto, hemos utilizado la consulta "bash" con el nombre del archivo mencionado dentro de él. La salida es tan misma como esperamos. Como el valor variable contiene la ruta que especifica la ruta del archivo, muestra que el "$ V es un archivo".

Prueba de $ bash.mierda

Ejemplo 04:

En el ejemplo ilustrado anterior, hemos usado la ruta para un archivo para ver cómo reacciona la declaración "if-else" anidada mientras usa las banderas "-d" y "-f". Esta vez usaremos la ruta del directorio. Abra el archivo una vez más y actualice el valor de ruta de variable. Hemos reemplazado "prueba.txt "con" documentos/". El script restante es el mismo.

Al compilar con éxito un script bash, la ruta declarada en el valor variable "v" es un directorio, e.gramo., Descargas.

Prueba de $ bash.mierda

Ejemplo 05:

El último ejemplo de bonificación es para práctica adicional. Abra el nuevo archivo "archivo.sh ”y llénelo con el siguiente código. Se han declarado dos variables para mostrar la ruta de archivo y directorio consecutivamente. Las declaraciones "if-else" se han utilizado con el indicador "-d" para especificar el tipo de ruta, e.gramo., directorio o archivo.

Una vez que se ha compilado el código, la primera variable contiene un archivo y el segundo contiene un directorio según la salida a continuación.

$ Bash File.mierda

Conclusión:

En esta guía, hemos visto cómo encontrar que la ruta mencionada es un archivo, un directorio o algo más. Hemos usado declaraciones "if-else" y anidadas "if-else" mientras utilizamos banderas "-d" y "-f" en nuestros ejemplos para elaborar mejor.