Как объединить папки в Mac OS X без потери всех ваших файлов (серьезно)
Поведение слияния папок по умолчанию в Mac OS X заключается в удалении существующей папки, удалении всех ее файлов, а не в интеллектуальном объединении. Файловые менеджеры Windows и Linux десятилетиями предлагали объединять папки, но Mac все еще не.
В Finder есть скрытая опция слияния, но она работает только иногда. Apple также включает в себя команду терминала для объединения папок другим способом. Если вы пользователь Windows или Linux, использующий OS X, это довольно неприятно.
Сломанный искатель поведения в поисках файлов
Эта проблема возникает при попытке переместить папку в место, где уже есть другая папка с таким же именем. В Windows и Linux файловые менеджеры пытаются разумно справиться с этим. Они объединят файлы в двух папках в одну папку с одинаковым именем.
В случае конфликта файлов файловый менеджер спросит вас, что делать с этим конкретным файлом. Если вы использовали Windows или Linux, вы, вероятно, знакомы с этим поведением. Вы, вероятно, никогда не думали об этом, потому что это просто работает.
Finder в Mac OS X не такой умный. По умолчанию он просто предлагает два варианта - Стоп или Заменить. Stop ничего не делает, а Replace заменяет старую папку новой папкой. Замена старой папки на самом деле удаляет все файлы в старой папке. Искатель не предлагает объединить папки.
Да, вы правильно прочитали - попробуйте объединить папку, как в Windows или Linux, и вы потеряете все файлы старой папки, если нажмете «Заменить», не читая диалоговое окно. Мы надеемся, что у вас было несколько резервных копий Time Machine, прежде чем вы начали перемещать папки в Mac OS X!
Если вы когда-либо видели это диалоговое окно при попытке переместить одну или несколько папок, вам, вероятно, следует просто нажать «Стоп». Это, вероятно, не будет делать то, что вы хотите сделать.
Как объединить папки в Finder
На самом деле Finder имеет функцию слияния папок, но не предлагает ее, когда вы этого захотите. Вместо этого вам нужно использовать секретное рукопожатие для доступа к нему.
В Mac OS X 10.7 Lion, выпущенной в 2011 году, добавлена скрытая опция Merge. Чтобы получить к нему доступ, вы должны удерживать клавишу «Option» при перетаскивании папки в то же место. Если вы сделаете это, вы увидите диалоговое окно с кнопкой «Объединить» и можете щелкнуть его, чтобы объединить папки, как в Windows или Linux..
Проблемы возникают, когда у вас есть файлы с одинаковыми именами в каждой папке. Mac OS X предложит вам одну опцию, чтобы помочь вам в этом - кнопка «Сохранить новые», которая перезаписывает более старые версии всех файлов с одинаковыми именами новыми. Нет способа пропустить эти конфликты или сохранить старые файлы, и нет полезного инструмента, который позволил бы вам сравнивать размеры и другую информацию. Это все или ничего.
Параметр «Сохранить новые» отображается только в том случае, если перемещаемая папка содержит более новые файлы. Если перемещаемая папка содержит более старые файлы, параметр «Объединить» не появится, даже если вы удерживаете кнопку «Параметры».
Возможно, опция Merge так хорошо скрыта, потому что она работает не очень хорошо. Это отчасти смущает.
Как объединить папки с помощью команды Ditto
Чтобы помочь вам правильно объединить папки, Apple добавила улучшенную функциональность объединения папок в терминальную команду под названием «ditto». (Почему мы не просто исправили Finder, мы не уверены.) Команда ditto является улучшенной версией стандарта. Unix cp команда, которую вы также можете использовать, если хотите.
В отличие от Finder, то же самое автоматически объединяет папки. Как написано на странице руководства:
«Если каталог назначения уже существует, то исходные каталоги объединяются с предыдущим содержимым пункта назначения».
Чтобы использовать то же самое, вам нужно открыть терминал - нажмите Command + пробел, введите Терминал в диалог поиска Spotlight и нажмите Enter.
Команда ditto использует синтаксис то же самое / путь / к / источнику / папке / пути / к / месту назначения / папке. Итак, в нашем примере здесь у нас есть папка с именем «Test», которая хранится на нашем рабочем столе, а другая папка с именем «Test» хранится в нашей папке «Загрузки». Мы запустили следующую команду, чтобы объединить их:
то же самое -V ~ / Desktop / Test ~ / Загрузки / Test
(Часть -V команды является необязательной, но она позволяет нам увидеть, что на самом деле делает то же самое. Не стесняйтесь ее опускать.)
В отличие от Finder, команда ditto принудительно перезаписывает содержимое папки назначения на содержимое папки источника. Даже если исходная папка содержит более старые файлы, чем папка назначения, конфликтующие файлы целевой папки будут перезаписаны этими более старыми файлами..
Как объединить папки, стиль Windows или Linux
Вам понадобится сторонняя утилита для объединения папок, как в Windows или Linux, с подсказками для каждого отдельного конфликта файлов и возможностью выбирать, какие файлы вы хотите сохранить. Мы искали высоко и низко в поисках хорошего бесплатного программного обеспечения, которое бы сравнивало конфликты файлов и позволяло выбирать разумно, но мы не нашли ни одного хорошего. Пожалуйста, оставьте комментарий, если вы нашли бесплатную утилиту, которая работает хорошо!
Эта функция доступна в платном программном обеспечении. Мы протестировали Cocaotech Path Finder, альтернативу Finder, и обнаружили, что она предлагает функцию слияния, которая работает так, как вы ожидаете. За 40 долларов это дорогая функция слияния папок, но, возможно, вы найдете и другие ее полезные. Мы уверены, что другие платные приложения предлагают аналогичные функции.
Вы всегда можете просто открыть обе папки и переместить файлы из одной папки во внутреннюю часть другой папки, таким образом проходя конфликты файлов в Finder. Это не будет хорошим вариантом, если у вас есть несколько уровней вложенных папок, однако - это много работы, чтобы сделать рекурсивно.
Эта статья была написана о OS X 10.9 Mavericks, так что, надеюсь, Apple добавит правильное слияние папок в будущем. Но не затаив дыхание - объединение папок - довольно сложная функция для опытных пользователей, которую Apple, похоже, не беспокоит.