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
#!/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...