Mover todos los contenidos de una carpeta a otra con un script de shell

2

¿Por qué funciona esto?

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

... pero los comandos de abajo 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 Automator . ¿Hay una mejor manera de mover todos los contenidos de una carpeta a otra con Automator.app?

    
pregunta DiogoSaraiva 20.01.2015 - 17:48

1 respuesta

5

El carácter de espacio es usado por bash para separar diferentes parámetros de un comando, por lo que necesita protegerlo / escapar 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 los caracteres del espacio sean mal interpretados por el shell, pero necesita mover el * fuera de las comillas para permitir la expansión de comodines:

mv "/Users/diogosaraiva/Music/Downloads - Youtube/Novas/"* "/Users/diogosaraiva/Music/Downloads - Youtube/Tratadas"
    
respondido por el nohillside 20.01.2015 - 18:03

Lea otras preguntas en las etiquetas