Използвайте същото, за да копирате файлове & директории интелигентно от терминала на Mac
Съдържание:
- Използване на Ditto за копиране на файлове / папки
- Използване на Ditto за обединяване на директории и съдържание на папки
Повечето дългогодишни потребители на командния ред разчитат на командата cp за копиране на файлове и директории, но Mac OS X предлага друго решение с командата ‘ditto’. Ditto е малко по-напреднал, но може да бъде изгоден за „cp“ по няколко причини, тъй като не само запазва атрибутите на собственост и разрешенията, но също така и разклоненията на файловите ресурси и метаданните на файловете и папките, като по същество гарантира, че файлът и/или папките се копират точно.
Освен това ditto може да се използва за копиране на файл или папка в изходна директория, но ако този източник все още не съществува, ditto автоматично ще го създаде. Освен това, ако целевата папка съществува, копираното съдържание ще бъде обединено в тази целева директория. И накрая, ditto също следва символни връзки, което го прави особено удобен, ако сте тежък потребител на командата ln.
За да разберем по-добре командата ditto, нека прегледаме няколко примера с реален синтаксис.
Използване на Ditto за копиране на файлове / папки
В най-простата си форма, ditto работи много като командата cp, със следния основен синтаксис:
същата дестинация източник
Например, ако искате да копирате ~/Desktop/FluffyBackups в /Volumes/FluffyBackups/, просто трябва да въведете следното:
същото ~/Desktop/FluffyBackups /Volumes/FluffyBackups/
Отново, това ще запази всички подробности за собствеността и метаданните за ресурсите на копираните файлове, което може да е особено важно, ако копирате файлове от една потребителска директория в друга или ако искате да запазите нещо като времена за модификация на файлове.
Ако не сте сигурни относно съдържанието на източника и местоназначението, винаги можете да ги сравните с командата comm или командата diff, преди да продължите с командата ditto.
Използване на Ditto за обединяване на директории и съдържание на папки
Запомнете, ditto ще провери дали дестинацията вече съществува и ако съществува, ще обедини директориите на източника към дестинацията. Това е важно и изключително полезно, което го прави един от най-лесните начини за обединяване на директориите от командния ред в Mac OS X (въпреки че вече е лесно и във Finder).
същото ~/Pictures/Fall2015/ /Volumes/PhotoBackup/2015/
Това ще вземе всички снимки от „Fall2015“ и ще ги копира в предварително съществуващата директория „2015“, ефективно обединявайки съдържанието от източника до дестинацията. Отново поведението на сливане възниква, когато дестинацията вече съществува, ако дестинацията не съществува, тя ще бъде създадена, както е посочено, или като име на източник.
Ако използвате ditto за копиране на данни от директории със символни връзки, използването на флага -V (verbose all) е полезно, защото ще покаже всеки файл и символна връзка, които са били копирани. Забележка -V е различно от -v, което ще показва само файлове като изход, а не символни връзки.
Копиране без метаданни с помощта на същото
Ако по някаква причина не искате да копирате метаданни и разклонения на ресурси, можете да използвате флага –norsrc така:
ditto -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups
Използването на флага –norsrc отменя основното предимство на ditto, но може да бъде полезно в някои случаи.
Можете да научите много повече за отличната команда ditto, като прочетете нейната страница с ръководство, достъпна в Mac OS X, като напишете:
man ditto
Както обикновено, използвайте клавишите със стрелки, за да се придвижвате нагоре и надолу в страницата с ръководство.
Преди да разчитате силно на същото, не забравяйте да го изпробвате няколко пъти с незначителни премествания на файлове и сливания на директории, за да разберете как работи с планираното ви използване.