Nota: - $ El usuario imprimirá los nombres de usuario de los usuarios de inicio de sesión actuales.
Si tiene curiosidad por saber qué versión de Bash Shell está instalada en el sistema, podemos verificarlo utilizando el siguiente comando.
$ Bash -Versión
Salida de la versión Bash.
Creación y ejecución de script bash
Comencemos con la creación de un archivo simple usando cualquier editor de su elección. Para mí, el editor de VI es más cómodo. Para hacer que el archivo sea ejecutable, necesitamos agregar shebang (!#) y ubicación de intérprete de bash al comienzo del guión. He creado un texto.archivo txt y agrégalo a bash_demo dir en mi directora de hogar que contiene algún texto para fines de demostración.
$ touch bash_demo.mierda
$ VI Bash_demo.mierda
Agregue las siguientes líneas en su editor de texto para una demostración de muestra después de crear un archivo; Si no lo ha hecho, el editor creará un nuevo archivo en escribir y dejar de fumar.
#!/bin/bash
texto CP.txt /tmp /
echo "archivo copiado."
Podemos ejecutar el script usando ./ Antes del archivo de script, que determina el archivo Dir actual.
ps ./BASH_DEMO.mierda
Cuando ejecutamos el script, el siguiente error se lanzará en nuestro terminal.
Ejecución inicial del archivo bash.
Cuando creamos un archivo por defecto, el usuario no tiene permiso de ejecución para el archivo. Para proporcionar permiso de ejecución al usuario, se debe ejecutar el siguiente comando.
$ chmod +x bash_demo.mierda
Salida después del permiso otorgado.
Copiar solo archivos de un directorio específico
Para obtener todos los archivos y DIR desde una ruta específica, usaremos para el bucle en el script, luego filtre el único archivo usando si la condición. En el ejemplo a continuación, ejecutamos el comando CP solo ejecutado si el iterador era un archivo que se determina -f indicador.
#!/bin/bash
dpath =/var/log/nginx/*
para el archivo en $ dpath
hacer
Si [[-f $ archivo]]]
entonces
CP $ File/Home/$ user/
demás
echo “No hay archivos en la ruta dada."
FI
hecho
Copiar todos los archivos de extensiones específicas
En este ejemplo, copiaremos todos los archivos con el .extensión de registro. Necesitamos agregar *.iniciar sesión en la ruta para iterar el único archivo con .Extensión de registro solo para bucle.
#!/bin/bash
Para Archivo en/var/log/nginx/*.registro
hacer
CP $ File/Home/$ user/
hecho
Copiar todos los archivos, incluido el directorio
En este ejemplo, copiaremos todos los archivos, incluidos directorios, recursivamente. Para eso, simplemente necesitamos agregar el comando -r CP donde -r determina la obtención de recursiones del directorio.
#!/bin/bash
para archivo en/var/log/*
hacer
cp -r $ file/home/$ user/
hecho
Copiar archivos de la ruta especificada por el usuario
En este ejemplo, copiaremos archivos de DIR especificado por el usuario. Para hacerlo, utilizaremos el comando Read para solicitar la ruta del usuario y luego verifique si el usuario proporciona la ruta a Dir o no, que se realiza el indicador -d en la condición. Después de verificar DIR, usaremos un bucle for para iterar todos los archivos y DIR dentro de la ruta dada, luego filtre nuevamente los únicos archivos utilizando la condición IF. Si la condición coincide, se ejecutará el siguiente comando CP.
#!/bin/bash
echo “Por favor proporcione un camino a Dir."
camino de lectura
if [[-d $ ruta]]]
entonces
Para el archivo en $ ruta/*
hacer
Si [[-f $ archivo]]]
entonces
CP $ File/Home/$ user/
demás
echo “No hay archivos en la ruta dada."
FI
hecho
demás
se requiere "el camino hacia Dir se requiere"
FI
En mi directora de casa, tengo los siguientes archivos y directores.
Salida al proporcionar la ruta a un archivo.
Salida al proporcionar una ruta de ubicación de DIR.
Después de ejecutar el archivo de script, podemos verificar la salida en el DIR predefinido en el script. En mi caso, he copiado el archivo en mi directora de casa, y el siguiente es el resultado.
Conclusión
En este artículo, aprendemos cómo copiar archivos usando scripting bash. Podemos usar muchas otras operaciones como un bucle, if-else, etc. Bash Scripting es más efectivo cuando se trabaja con múltiples comandos para realizar tareas específicas. Espero que les guste este artículo sobre la copia de archivos usando un script bash.