Que tal, buenas noches!
Estoy aprendiendo a crear scripts en bash, y estoy haciendo un script el cual te mueve todos los ficheros de las extensiones que tu le indiques de una ruta origen a una ruta destino. Este script es solo didactico, pues estoy practicando el uso de for e if.
El script es el siguiente:
El script almacena en una variable la ruta_origen, en otra la ruta_destino y en una tercera las extensiones que tiene que mover. Sin embargo al llamar dos variables en la instruccion del comando ls lo hago de la siguiente manera: ls "$ruta_origen"*.{"$extensiones"}. El problema que el script al llegar a esa linea, me indica que la ruta no existe, cuando el error mostrado me muestra realmente la ruta que es, pero el interprete bash muestra que no, que no existe. Que pasa?
He buscado por internet, pero no encuentro nada...
Alguna idea?
De antemano, gracias...
Estoy aprendiendo a crear scripts en bash, y estoy haciendo un script el cual te mueve todos los ficheros de las extensiones que tu le indiques de una ruta origen a una ruta destino. Este script es solo didactico, pues estoy practicando el uso de for e if.
El script es el siguiente:
Código (bash) [Seleccionar]
#!/bin/bash
echo "Escribe la ruta donde se encuentran los archivos a mover"
read ruta_origen
if [ -d "$ruta_origen" ]
then
echo "Escribe las extensiones separadas por comas de los tipos de archivos a mover"
read extensiones
echo "Escribe la ruta donde quieres mover tus archivo..."
read ruta_destino
if [ -d "$ruta_destino" ]
then
ls "$ruta_origen"*.{"$extensiones"} > /tmp/lista_archivos.txt
for linea in $(cat /tmp/lista_archivos.txt)
do
mv ${ruta_origen}$linea $ruta_destino
done
clear
echo "Los archivos se movieron correctamente"
else
echo "El directorio no existe, no se puede continuar"
fi
else
echo "El directorio no existe, no se puede continuar"
fi
El script almacena en una variable la ruta_origen, en otra la ruta_destino y en una tercera las extensiones que tiene que mover. Sin embargo al llamar dos variables en la instruccion del comando ls lo hago de la siguiente manera: ls "$ruta_origen"*.{"$extensiones"}. El problema que el script al llegar a esa linea, me indica que la ruta no existe, cuando el error mostrado me muestra realmente la ruta que es, pero el interprete bash muestra que no, que no existe. Que pasa?
He buscado por internet, pero no encuentro nada...
Alguna idea?
De antemano, gracias...