Използвайте същото, за да копирате файлове & директории интелигентно от терминала на Mac

Съдържание:

Anonim

Повечето дългогодишни потребители на командния ред разчитат на командата 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

Както обикновено, използвайте клавишите със стрелки, за да се придвижвате нагоре и надолу в страницата с ръководство.

Преди да разчитате силно на същото, не забравяйте да го изпробвате няколко пъти с незначителни премествания на файлове и сливания на директории, за да разберете как работи с планираното ви използване.

Използвайте същото, за да копирате файлове & директории интелигентно от терминала на Mac