Script bash para mover ficheros entre directorios
Hoy me ha surgido tener que hacer un sencillo shell script de bash para que los ficheros de una carpeta, les cambie permisos y los mueva a otra carpeta.
Y si bien se puede hacer por todos los ficheros del directorio y se mueven, pero esto podría darme un error.
Necesitaba hacerlo fichero a fichero, dentro del directorio. Pensé en meter un ‘ls‘ en un array, pero no es necesario, es mucho más sencillo.
Con un ‘for‘ recorres el contenido, por cada fichero que encuentra le aplicas lo que necesitas y listo. Funciona como un reloj.
Aquí os dejo el script básico:
#! /bin/bash for fichero in "/path/directorio/*" do # acciones... done
Y un caso práctico, donde declaramos como variables las rutas de los directorios, aplicamos permisos y movemos los ficheros de un origen a otro directorio sería:
#! /bin/bash # Variables rutaOrigen=/home/entrada/* rutaDestino=/home/nueva_entrada/ # Loop for fichero in "$rutaOrigen" do /bin/chmod 666 $fichero /bin/chown usuario:grupo $fichero /bin/mv $fichero $rutaDestino done
Un saludo