Come unire le directory in Mac OS X con idem

Se hai due cartelle che devi unire insieme, puoi trascinare e rilasciare tutto insieme, utilizzare il comando 'mv' per spostare i file manualmente oppure, come vedremo qui, puoi rapidamente unire due directory in Mac OS X usando lo strumento da riga di comando idem o 'cp'. La riga di comando è generalmente rivolta agli utenti esperti, ma idem è abbastanza semplice da usare, quindi quasi chiunque può utilizzarla in questo modo se sono a proprio agio con il terminale.


Per utilizzare idem allo scopo di unire insieme le directory, avviare l'applicazione Terminale e utilizzare la seguente sintassi:

ditto directory1 directory2

Se esiste già una directory nella destinazione (directory2), il contenuto della sorgente (directory1) verrà unito ai contenuti della destinazione (destinazione2).

Quindi, ad esempio, diciamo che voglio unire le immagini da "Agosto 2010" a "Estate 2010", quindi userò la seguente stringa di comando per ottenere ciò:

ditto "August 2010" "Summer 2010"

È importante capire come funziona e come differisce dai comandi mv e cp, la pagina di manuale è un buon punto di partenza se non si è familiari. La pagina man di idem descrive ulteriormente:

Nella sua prima forma, idem copia uno o più file o directory di origine
in una directory di destinazione. Se la directory di destinazione non esiste
sarà creato prima che la prima fonte venga copiata. Se la destinazione
la directory esiste già, quindi le directory di origine sono unite con il
contenuti precedenti della destinazione.

Si noti la creazione di directory di destinazione e, come si enfatizza qui, la possibilità di unire una directory di origine e di destinazione con la stringa ditto.

Se non si ha familiarità con la riga di comando o non si è in grado di utilizzarlo per metodi più avanzati di trasferimento di file come questo, è possibile utilizzare la GUI del Finder per eseguire questo tipo di azione.

Unione di directory con "cp" nella riga di comando

Se non vuoi usare idem, puoi anche usare il comando cp con i flag -r e -n in questo modo:

cp -r -n ~/Desktop/Dir1/* ~/Desktop/Dir2/

Questo copierà tutto da Dir1 a Dir2 ma non sovrascriverà alcun file corrispondente.