Використовуйте те ж саме, щоб інтелектуально копіювати файли & каталогів із терміналу 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 (дослівно все) є цінним, оскільки він відображатиме кожен файл і символічне посилання, які було скопійовано. Примітка. -V відрізняється від -v, який показуватиме лише файли як вихідні дані, а не символічні посилання.
Копіювати без метаданих за допомогою Ditto
Якщо з якоїсь причини ви не хочете копіювати метадані та розгалуження ресурсів, скористайтеся прапорцем –norsrc так:
то ж -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups
Використання прапора –norsrc ніби втрачає основну перевагу ditto, але може бути корисним у деяких випадках.
Ви можете дізнатися більше про чудову команду ditto, прочитавши її сторінку посібника, доступну в Mac OS X, ввівши:
man ditto
Як зазвичай, використовуйте клавіші зі стрілками для навігації вгору та вниз на сторінці посібника.
Перш ніж сильно покладатися на те ж саме, обов’язково кілька разів спробуйте його з несуттєвими переміщеннями файлів і об’єднанням каталогів, щоб зрозуміти, як це працює з вашим запланованим використанням.