Använd ditto för att kopiera filer och kataloger intelligent från Mac Terminal

De flesta långsiktiga kommandoradsanvändare använder sig av cp-kommandot för att kopiera filer och kataloger, men Mac OS X erbjuder en annan lösning med kommandot "ditto". Ditto är något mer avancerat men kan vara fördelaktigt att "cp" av flera anledningar, eftersom det inte bara bevarar ägandeskap och behörigheter utan även filresursgafflar och metadata för filer och mappar, vilket i huvudsak försäkrar att filen och / eller mapparna kopieras exakt . Dessutom kan ditto användas för att kopiera en fil eller mapp till en källkatalog, men om den källan ännu inte existerar skapas ditto automatiskt. Om destinationsmappen existerar kommer också de kopierade innehållen att slås samman i den målkatalogen. Slutligen följer ditto också symboliska länkar, vilket gör det särskilt användbart om du är en tung användare av ln-kommandot.

För att bättre förstå kommandot ditto, låt oss gå igenom några exempel med riktig syntax.

Använda Ditto för att kopiera filer / mappar

På det enklaste sättet fungerar ditto ungefär som cp-kommandot, med grundläggande syntax enligt följande:

ditto source destination

Om du till exempel vill kopiera ~ / Desktop / FluffyBackups till / Volymer / FluffyBackups / skulle du bara skriva följande:

ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/

Återigen behåller detta alla ägar- och resursmetadata detaljer för de filer som kopierats, vilket kan vara särskilt viktigt om du kopierar filer från en användarkatalog till en annan, eller om du vill behålla något som ändringar av filer.

Om du är osäker på käll- och destinationsinnehållet kan du alltid jämföra de två med komm-kommandot eller diff-kommandot innan du fortsätter med ditto-kommandot.

Använda Ditto att sammanfoga kataloger och mappinnehåll

Kom ihåg att ditto kommer att kontrollera om destinationen redan existerar, och om den gör det kommer den att slå samman källans kataloger till destinationen. Detta är viktigt och mycket användbart, vilket gör det till ett av de enklaste sätten att slå samman katalogerna från kommandoraden i OS X (även om det är enkelt nu i Finder också).

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

Detta skulle ta alla bilder från "Fall2015" och kopiera dem till den befintliga katalogen "2015", genom att fusionera innehållet effektivt från källan till destinationen. Återigen sker sammanslagningsbeteendet när destinationen redan existerar, om destinationen inte finns skulle den skapas som specificerat eller som källnamn.

Om du använder ditto för att kopiera data från kataloger med symboliska länkar, använder du -V (verbose all) flaggan värdefull eftersom den visar alla filer och symboliska länkar som har kopierats. Obs! -V är annorlunda än -v, som bara visar filer som utgång, och inte symboliska länkar.

Kopiera utan metadata med Ditto

Om du av någon anledning inte vill kopiera metadata och resursgafflar, så använd en -norsrc-flaggan så här:

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

Använda -norsrc-flaggan slags besegrar en primär fördel med ditto, men det kan vara användbart för vissa fall.

Du kan lära dig mycket mer om det utmärkta ditto-kommandot genom att läsa sin manuella sida, tillgänglig i OS X genom att skriva:

man ditto

Som vanligt använder du piltangenterna för att navigera upp och ner i den manuella sidan.

Innan du lita på ditto tungt, var noga med att prova ett par gånger med oavsiktliga fildragningar och katalogfusioner för att förstå hur det fungerar med din planerade användning.