Bruk ditto til å kopiere filer og kataloger intelligent fra Mac Terminal

De fleste langvarige kommandolinjebrukerne stole på cp-kommandoen for å kopiere filer og kataloger, men Mac OS X tilbyr en annen løsning med kommandoen "ditto". Ditto er litt mer avansert, men kan være fordelaktig å 'cp' av flere grunner, da det ikke bare bevarer eierskapsfunksjoner og tillatelser, men også filresursgaffler og fil- og mappemetadata, i det vesentlige sikrer at filen og / eller mappene kopieres nøyaktig . I tillegg kan ditto brukes til å kopiere en fil eller mappe til en kildekatalog, men hvis den kilden ikke eksisterer, vil ditto automatisk lage den. Også, hvis destinasjonsmappen eksisterer, blir det kopierte innholdet slått sammen i denne destinasjonsmappen. Endelig følger ditto også symbolske lenker, noe som gjør den spesielt nyttig hvis du er en tung bruker av ln-kommandoen.

For å bedre forstå kommandoen ditto, la oss gjennomgå noen eksempler med ekte syntaks.

Bruke Ditto til å kopiere filer / mapper

På det mest enkle skjemaet virker ditto mye som cp-kommandoen, med grunnleggende syntaks som følger:

ditto source destination

For eksempel, hvis du ønsket å kopiere ~ / Desktop / FluffyBackups til / Volumer / FluffyBackups / du ville bare skrive følgende:

ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/

Igjen vil dette beholde alle eierskaps- og ressursmetadata-detaljer for filene kopiert, noe som kan være spesielt viktig hvis du kopierer filer fra en brukerkatalog til en annen, eller hvis du vil bevare noe som endringstider for filer.

Hvis du er usikker på kilden og destinasjonsinnholdet, kan du alltid sammenligne de to med komm-kommandoen eller diff-kommandoen før du fortsetter med kommandoen ditto.

Bruke Ditto til å slå sammen kataloger og mappeinnhold

Husk, ditto vil sjekke for å se om destinasjonen allerede eksisterer, og hvis den gjør det, vil den fusjonere katalogene til kilden til destinasjonen. Dette er viktig og ekstremt nyttig, noe som gjør det til en av de enkleste måtene å slå sammen katalogene fra kommandolinjen i OS X (selv om det er enkelt nå også i Finder).

ditto ~/Pictures/Fall2015/ /Volumes/PhotoBackup/2015/

Dette vil ta alle bilder fra "Fall2015" og kopiere dem til den eksisterende katalogen "2015", effektivt fusjonere innholdet fra kilden til destinasjonen. Igen oppstår sammenføyningsadferdasjonen når bestemmelsesstedet allerede eksisterer, hvis målet ikke eksisterer, vil det bli opprettet som angitt, eller som kildenavnet.

Hvis du bruker ditto til å kopiere data fra kataloger med symbolske linker, bruker flagg -V (verbose all), verdifullt fordi det vil vise hver fil og symbolsk lenke som er kopiert. Merk -V er forskjellig fra -v, som bare viser filer som utgang, og ikke symbolske koblinger.

Kopier uten metadata ved hjelp av Ditto

Hvis du av en eller annen grunn ikke vil kopiere metadata og ressursgafler, kan du bruke -norsrc-flagg slik:

ditto -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups

Bruk av -norsrc-flagget slags nederlag er en primær fordel for ditto, men det kan være nyttig for noen tilfeller.

Du kan lære mye mer om den utmerkede ditto-kommandoen ved å lese sin manuelle side, tilgjengelig i OS X ved å skrive:

man ditto

Som vanlig bruker du piltastene til å navigere opp og ned i den manuelle siden.

Før du stole på ditto tungt, sørg for å prøve det ut noen ganger med inkonsekvente filbevegelser og katalogfusjoner for å forstå hvordan det fungerer med din planlagte bruk.