Espacios en un nombre de carpeta

Tengo un nombre de carpeta con un espacio entre el nombre:/Volumes/Img/Horos Data/DATABASE/

Necesito ponerlo en una variable para usar en un script.

En la terminal puedo \usar la carpeta: cd /Volumes/Dados/Horos\ Data/DATABASE/, pero no funciona cuando pongo una variable como:

DESTINY=/Volumes/Dados/Horos\ Data/DATABASE.noindex/
ls $DESTINY

¿Cómo puedo ponerlo en una variable?

Respuestas (2)

Las variables o los argumentos en el lado derecho de un comando están sujetos a división de palabras por parte del shell, a menos que se cite. Puedes probar la siguiente demostración.

touch foo\ bar\ baz
#
ls foo\ bar\ baz
foo bar baz
# or
ls "foo bar baz"
foo bar baz
#
var=foo\ bar\ baz
ls $var
ls: bar: No such file or directory
ls: baz: No such file or directory
ls: foo: No such file or directory
#
ls "$var"
foo bar baz

Las comillas se pueden usar para escapar de los espacios cuando se asigna a una variable.

var="abc def ghi"
¡No funciona con comillas! Lo he intentado con comillas simples y dobles y devuelve un error. DESTINO=/Volumes/Dados/Horos Data/DATABASE/ error= link_stat "/Volumes/Dados/Horos" falló: No existe tal archivo o directorio (2)
... excepto que cuando usas la variable a través de algo así blah $var, la división de palabras POSIX te muerde