Usa idem per copiare file & Directory in modo intelligente dal terminale Mac
Sommario:
- Utilizzo di Ditto per copiare file/cartelle
- Utilizzo di Ditto per unire directory e contenuti delle cartelle
La maggior parte degli utenti della riga di comando di lunga data si affida al comando cp per copiare file e directory, ma Mac OS X offre un' altra soluzione con il comando 'idem'. Ditto è leggermente più avanzato ma può essere vantaggioso per "cp" per diversi motivi, poiché non solo preserva gli attributi e le autorizzazioni di proprietà, ma anche i fork delle risorse dei file e i metadati di file e cartelle, assicurando essenzialmente che il file e/o le cartelle vengano copiati esattamente .
Inoltre, idem può essere utilizzato per copiare un file o una cartella in una directory sorgente, ma se quella sorgente non esiste ancora, idem la creerà automaticamente. Inoltre, se la cartella di destinazione esiste, i contenuti copiati verranno uniti insieme in quella directory di destinazione. Infine, idem segue anche i collegamenti simbolici, rendendolo particolarmente utile se sei un utente assiduo del comando ln.
Per comprendere meglio il comando ditto, eseguiamo alcuni esempi con la sintassi reale.
Utilizzo di Ditto per copiare file/cartelle
Nella sua forma più semplice, idem funziona in modo molto simile al comando cp, con la sintassi di base come segue:
idem sorgente destinazione
Ad esempio, se si desidera copiare ~/Desktop/FluffyBackups in /Volumes/FluffyBackups/ è sufficiente digitare quanto segue:
idem ~/Desktop/FluffyBackups /Volumes/FluffyBackups/
Ancora una volta, questo manterrà tutti i dettagli della proprietà e dei metadati delle risorse dei file copiati, il che potrebbe essere particolarmente importante se stai copiando i file da una directory utente a un' altra o se vuoi conservare qualcosa come tempi di modifica dei file.
Se non sei sicuro dei contenuti di origine e di destinazione, puoi sempre confrontare i due con il comando comm o il comando diff prima di procedere con il comando ditto.
Utilizzo di Ditto per unire directory e contenuti delle cartelle
Ricorda, idem verificherà se la destinazione esiste già e, in caso affermativo, unirà le directory della sorgente alla destinazione. Questo è importante ed estremamente utile, rendendolo uno dei modi più semplici per unire le directory dalla riga di comando in Mac OS X (anche se ora è facile anche nel Finder).
idem ~/Immagini/Autunno2015/ /Volumes/PhotoBackup/2015/
Questo prenderebbe tutte le immagini da "Fall2015" e le copierebbe nella directory preesistente "2015", unendo efficacemente i contenuti dalla sorgente alla destinazione. Anche in questo caso, il comportamento di unione si verifica quando la destinazione esiste già, se la destinazione non esiste verrà creata come specificato o come nome di origine.
Se stai usando idem per copiare dati da directory con collegamenti simbolici, l'uso del flag -V (verbose all) è utile perché visualizzerà ogni file e collegamento simbolico che è stato copiato. Nota -V è diverso da -v, che mostrerà solo i file come output e non i collegamenti simbolici.
Copia senza metadati usando Ditto
Se per qualche motivo non vuoi copiare metadati e fork delle risorse, puoi usare il flag –norsrc in questo modo:
idem -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups
L'uso del flag –norsrc annulla un vantaggio primario di ditto, ma può essere utile in alcuni casi.
Puoi imparare molto di più sull'eccellente comando ditto leggendo la sua pagina di manuale, accessibile in Mac OS X digitando:
uomo idem
Come al solito, usa i tasti freccia per navigare su e giù nella pagina di manuale.
Prima di affidarti pesantemente a idem, assicurati di provarlo alcune volte con spostamenti di file irrilevanti e unioni di directory per capire come funziona con il tuo utilizzo pianificato.