Mueva todo el contenido de una carpeta a otra con script de shell

¿Por qué funciona esto?

mv /Users/diogosaraiva/Music/Youtube/Novas/* /Users/diogosaraiva/Music/Youtube/Tratadas  

…pero los siguientes comandos no funcionan?

mv "/Users/diogosaraiva/Music/Youtube/Novas/*" "/Users/diogosaraiva/Music/Youtube/Tratadas"

Tuve que cambiar el nombre de la carpeta "Youtube" de "Youtube - Descargas", solo porque esto no funciona:

mv "/Users/diogosaraiva/Music/Downloads - Youtube/Novas/*" "/Users/diogosaraiva/Music/Downloads - Youtube/Tratadas"

Quiero integrar esto en una aplicación de Automator . ¿Hay una mejor manera de mover todo el contenido de una carpeta a otra con Automator.app?

Respuestas (1)

El carácter de espacio se usa para bashseparar diferentes parámetros de un comando, por lo que debe protegerlo/escaparlo si aparece en los nombres de archivo (u otros parámetros):

mv /Users/diogosaraiva/Music/Downloads\ -\ Youtube/Novas/*  /Users/diogosaraiva/Music/Downloads\ -\ Youtube/Tratadas

También puede usar comillas para evitar que el shell malinterprete los caracteres de espacio, pero debe mover el *exterior de las comillas para permitir la expansión de comodines:

mv "/Users/diogosaraiva/Music/Downloads - Youtube/Novas/"* "/Users/diogosaraiva/Music/Downloads - Youtube/Tratadas"
Trabajé como dos comandos... ¿Existe un comando de línea para esto? Gracias
En realidad, es una línea, pero cambié la muestra ahora para que sea más evidente.