Чтобы скопировать проект между дисками Mac с сохранением дат изменения файлов, используйте команду ditto в Терминале macOS и проверьте результат. Важно учитывать одно ограничение: согласно документации, ditto сохраняет время изменения и доступа, но не исходную дату создания файла. Если под «датой» понимается значение Дата создания (Created) в Finder, задокументированные параметры копирования macOS не гарантируют ее сохранение. Проверьте, какая дата для вас важна, прежде чем удалять данные или форматировать исходный диск.

Сначала определите, какую дату необходимо сохранить

Дата изменения (Modified) файла фиксирует время последнего изменения его содержимого. Дата создания (Created) — это отдельный атрибут файловой системы. Finder также может отображать Дату добавления (Date Added), которая показывает, когда объект был добавлен в определенное место. Apple относит даты создания и изменения содержимого к отдельным атрибутам метаданных файловой системы, поэтому сохранение одного из них не означает, что сохранились и остальные. Ключи атрибутов метаданных файловой системы Apple

Для архива проекта дата изменения часто используется для поиска последней отредактированной версии. Если вам конкретно требуются дата создания или дата добавления — например, если другой рабочий процесс сортирует файлы по этому полю, — рассматривайте это как отдельное требование. Не следует делать вывод, что дата создания сохранилась лишь потому, что сохранилась дата изменения.

Копирование проекта с помощью ditto

Для создания новой папки назначения подключите оба диска и откройте Терминал. Замените примеры имен томов и папок именами, отображаемыми в Finder. В папке назначения не должно быть копии проекта, которую вы хотите оставить: ditto может объединить содержимое с существующей папкой назначения и перезаписать файлы с совпадающими именами.

ditto -V "/Volumes/SourceDrive/Project" "/Volumes/BackupDrive/Project"

Эта команда копирует содержимое папки проекта в папку назначения с именем Project; флаг -V выводит каждый скопированный объект. В руководстве по ditto для macOS указано, что скопированные объекты сохраняют время изменения и доступа источника, а также что ветви ресурсов (resource forks) и расширенные атрибуты сохраняются по умолчанию. Время создания не входит в список временных меток, сохранение которых гарантируется. DITTO(1), справочная страница macOS

Если папка назначения уже существует, ditto объединяет с ней исходные файлы. Используйте новую, правильно названную папку назначения, когда требуется чистая копия, и проверяйте вывод команды на наличие ошибок, прежде чем полагаться на результат. Не добавляйте флаг --norsrc без необходимости: согласно руководству, он отключает копирование ветвей ресурсов и, если не переопределено, расширенных атрибутов и списков контроля доступа (ACL). Эти атрибуты могут иметь важное значение для файлов проектов на Mac.

Почему cp -p не решает проблему с датой создания

Встроенная команда cp с флагом -p сохраняет время изменения и доступа, а также другие атрибуты, если это позволяют права доступа. В руководстве Apple по cp время создания также не включено в этот список. Это делает cp -p удобной, когда нужно сохранить даты изменения, но это не задокументированный способ переноса исходной даты создания файла между дисками. Руководство Apple по cp

Ни одна из команд не может гарантировать, что каждый атрибут будет идентично представлен на любом целевом носителе. Файловая система диска и права доступа, доступные вашей учетной записи, влияют на то, какие метаданные могут быть сохранены или применены. Например, в руководстве к ditto отмечается, что некоторые атрибуты сохраняются только на поддерживаемых целевых томах и при наличии соответствующих прав доступа.

Проверьте результат перед удалением оригинала

После копирования выберите несколько характерных файлов в Finder и нажмите Command-I, чтобы открыть окно «Свойства» (Get Info). Сравните значения Изменен (Modified) в источнике и назначении; также сравните значение Создан (Created), если это необходимо. В режиме списка Finder можно просматривать доступные столбцы дат и сортировать файлы по ним, хотя в документации Apple описывается отображение даты изменения в режиме списка, а не гарантия переноса всех полей дат. Служба поддержки Apple: Упорядочивание файлов в Finder на Mac

Проверьте файлы, вложенные в проект, а также папку верхнего уровня, и откройте ключевые файлы проекта из места назначения. Если дата изменения совпадает, а дата создания изменилась, копирование обеспечило документированное сохранение временных меток, но не удовлетворило требованию к дате создания. Сохраняйте исходные файлы нетронутыми до тех пор, пока не убедитесь, что нужные даты и содержимое проекта присутствуют в месте назначения.

Если точные даты создания критически важны, выбирайте рабочий процесс копирования или архивации только после подтверждения того, что он явно поддерживает сохранение и восстановление дат создания для ваших исходных и целевых файловых систем. В документации Apple к ditto и cp -p таких гарантий нет, поэтому не следует рассматривать ни одну из этих команд как проверенное решение для этой задачи.

Источники