script error fichero con espacio

Iniciado por juanxo12, 5 Julio 2017, 17:42 PM

0 Miembros y 1 Visitante están viendo este tema.

juanxo12

Hola, como hago si el fichero que busco o un directorio de la ruta tiene un espacio? ej archivo nuevo
Me da un error  
script: dado un nombre de fichero y una ruta, buscar fichero, si existen mover a ruta
Código (bash) [Seleccionar]
if [ $# -ne 2 ] #debe introducir fichero y ruta
then
       echo "Debe especificar un fichero y una ruta"
       echo "Uso:" $0 "<fichero> <ruta>"
       exit 1
fi
if [ ! -d $2 ] #comprueba si ruta dada existe
       then
               echo "El directorio no existe"
               exit 1
       fi


           find / -name $1 >basura #busca el fichero desde arhivo raiz y guarda en un fichero "basura" los ficheros encontrados
if [ ! -s basura ] #si archivo esta vacio (no se encontro nada)
then
      echo "No se encontro ningun resultado con" $1
      rm basura
      exit 1
fi
    cat -n basura #imprime el fichero "basura" numerando las lineas
    echo "Introduzca numero del archivo que quiere mover a "$2 "(S/Salir)"
    read op

case $op in
[sS])
rm basura #borra fichero "basura" generada
exit 1
;; #salir
[sS]alir)
rm basura #borra fichero "basura" generada
exit 1
;;
*)
fichero=`sed -n "${op}p" basura` #guarda la linea seleccionada en variable "fichero"
rm basura #borra fichero "basura" generada
;;
esac

if [ -z $fichero ] #si variable "fichero" esta vacia opcion no valida
                then
                echo "Opcion no valida"
                exit 1
                fi

        echo "Muevo el fichero?"$fichero "a" $2 "(S/N)"
        read res

        case $res in
               [sS])
                       echo "Moviendo fichero.."
                       mv $fichero $2                           #mover archivo a ruta
                       if true
                       then
                                  echo "Fichero movido"
                       else
                                  echo "ERROR" #errores por permisos
                       fi
                       ;;
               *)
                       echo "El fichero no sera movido"
                       ;;
               esac