Använd dito för att kopiera filer & Kataloger intelligent från Mac-terminalen
Innehållsförteckning:
- Använda dito för att kopiera filer/mappar
- Använda dito för att slå samman kataloger och mappinnehåll
De flesta långvariga kommandoradsanvändare förlitar sig på kommandot cp 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 för "cp" av flera skäl, eftersom det inte bara bevarar ägandeattribut och behörigheter utan också filresursgaffel och fil- och mappmetadata, vilket i huvudsak säkerställer att filen och/eller mapparna kopieras exakt .
Dessutom kan dito användas för att kopiera en fil eller mapp till en källkatalog, men om den källan inte finns ännu kommer dito att skapa den automatiskt. Om målmappen finns kommer det kopierade innehållet att slås samman i den målkatalogen. Slutligen, dito följer också symboliska länkar, vilket gör det särskilt praktiskt om du är en stor användare av kommandot ln.
För att bättre förstå dito-kommandot, låt oss gå igenom några exempel med riktig syntax.
Använda dito för att kopiera filer/mappar
I sin enklaste form fungerar dito ungefär som kommandot cp, med grundläggande syntax enligt följande:
ditto källdestination
Om du till exempel vill kopiera ~/Desktop/FluffyBackups till /Volumes/FluffyBackups/ skulle du bara skriva följande:
ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/
Återigen, detta kommer att behålla alla ägande- och resursmetadatadetaljer för filerna som kopieras, vilket kan vara särskilt viktigt om du kopierar filer från en användarkatalog till en annan, eller om du vill bevara något liknande ändringstider för filer.
Om du är osäker på käll- och destinationsinnehållet kan du alltid jämföra de två med kommandot comm eller diff-kommandot innan du fortsätter med dito-kommandot.
Använda dito för att slå samman kataloger och mappinnehåll
Kom ihåg att dito kontrollerar om destinationen redan finns, och om den gör det kommer den att slå samman katalogerna för källan till destinationen. Detta är viktigt och extremt användbart, vilket gör det till ett av de enklaste sätten att slå samman katalogerna från kommandoraden i Mac 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 redan existerande katalogen "2015", vilket effektivt slår samman innehållet från källan till destinationen. Återigen, sammanslagningsbeteendet inträffar när destinationen redan finns, om destinationen inte finns skulle den skapas som specificerat, eller som källnamnet.
Om du använder dito för att kopiera data från kataloger med symboliska länkar, är det värdefullt att använda flaggan -V (verbose all) eftersom den kommer att visa alla filer och symboliska länkar som har kopierats. Notera -V är annorlunda än -v, som bara visar filer som utdata och inte symboliska länkar.
Kopiera utan metadata med dito
Om du av någon anledning inte vill kopiera metadata och resursgaffel, kan du använda flaggan –norsrc så här:
ditto -V --norsrc ~/Sample/Mapp /Volumes/NoMetadataBackups
Att använda flaggan –norsrc motverkar typ en primär fördel med dito, men det kan vara användbart i vissa fall.
Du kan lära dig mycket mer om det utmärkta dito-kommandot genom att läsa dess manualsida, tillgänglig i Mac OS X genom att skriva:
man dito
Använd piltangenterna som vanligt för att navigera upp och ner på manualsidan.
Innan du litar på dito mycket, se till att prova det några gånger med obetydliga filflyttningar och katalogsammanslagningar för att förstå hur det fungerar med din planerade användning.