Spostare tutti i contenuti da una cartella all'altra con lo script di shell

2

Perché funziona?

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

... ma i comandi seguenti non funzionano?

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

Ho dovuto rinominare la cartella "Youtube" da "Youtube - Download", solo perché questo non funziona:

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

Voglio integrarlo in un'applicazione Automator . C'è un modo migliore per spostare tutti i contenuti da una cartella a un'altra con Automator.app?

    
posta DiogoSaraiva 20.01.2015 - 17:48
fonte

1 risposta

5

Il carattere dello spazio è utilizzato da bash per separare diversi parametri in un comando, quindi devi proteggerlo / sfuggirlo se si verifica nei nomi di file (o altri parametri):

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

Puoi anche utilizzare le virgolette per proteggere i caratteri spaziali da interpretazioni errate della shell, ma devi spostare * all'esterno delle virgolette e quindi consentire l'espansione di caratteri jolly:

mv "/Users/diogosaraiva/Music/Downloads - Youtube/Novas/"* "/Users/diogosaraiva/Music/Downloads - Youtube/Tratadas"
    
risposta data 20.01.2015 - 18:03
fonte

Leggi altre domande sui tag