Симлинк Google Диск

Я хочу синхронизировать папки на моем Mac с Google Диском, не перетаскивая папки в папку Google Диска и сохраняя структуру папок на моем Mac.

Я предположил, что для этого вам понадобится символическая ссылка (симлинк).

Итак, я попробовал в терминале:

cd /path/to/google/drive
ln -s /path/to/folder/

Папка появилась у меня в папке Google Диска, но не хотела синхронизироваться.

Так что я тогда попробовал

ln -s “/path/to/folder”  “/path/to/google/drive/”

Все еще не работает. Поэтому я сослался на эту статью HowToGeek по этой теме, и в ней говорилось, что вы должны переместить исходную папку в папку Google Диска и сделать символическую ссылку на исходную родительскую папку.

Я бы хотел, чтобы оригинал не находился в папке Google Диска. Есть ли бесплатная альтернатива симлинку? Я просмотрел jdrivesync, но не смог установить (это будет еще одна проблема в другом обсуждении).

Спасибо за вашу помощь!

Есть ли альтернативный способ символической ссылки для синхронизации папок вне моей папки Google Диска? Я обновлю вопрос. @техраф
Он никогда не говорит, что это невозможно. Может ли быть способ, кроме использования символических ссылок, или может быть приложение? @техраф
Я никогда не просил другую команду символической ссылки или что-то еще, поскольку очевидно, что это не сработает. Есть ли приложение или другая команда , которая может достичь того, что я хочу сделать? Нет смысла спорить о том, что я сказал, здесь мы помогаем друг другу.

Ответы (5)

Вы можете использовать жесткую ссылку на каталог, но только в файловой системе HFS+. Вам понадобится GNU ln, чтобы использовать эту -dопцию. Это можно установить с помощью Homebrew : brew install coreutils, затем запустить:

sudo gln -d "/path/to/original" "/path/to/drive/folder"

Вас попросят ввести пароль. Эта команда создает жесткую ссылку на сам файл/папку, а не на то, как символическая ссылка ссылается на указатель на файл/каталог. Поскольку папка ссылки практически такая же, как и исходная папка, Google Диск синхронизирует ее правильно.

Чтобы отменить жесткую ссылку, используйте unlink "/path/to/drive/folder".

ВНИМАНИЕ: APFS (файловая система Apple) не поддерживает жесткие ссылки. Если вы планируете установить macOS High Sierra или более позднюю версию и хотите продолжать использовать жесткие ссылки на каталоги, вам потребуется поддерживать файловую систему HFS+. По умолчанию программа установки macOS High Sierra на Mac с SSD (например, без HDD или Fusion Drive) автоматически преобразует файловую систему HFS+ в APFS. Чтобы пропустить преобразование во время обновления, вам нужно будет запустить установщик macOS следующим образом:

/Applications/Install\ macOS\ High\ Sierra.app/*/R*/startosinstall --converttoapfs NO

Если вы избегаете последнего варианта, /.HFS+ Private Directory Dataпосле обновления вы получите беспорядок из жестко связанных каталогов.

Спасибо за ответ. Я попробовал это, и он сказал, что это каталог, который, как я предполагаю, «ln» сам по себе работает только для реальных файлов?
@Mekul Oops -dпредназначен для каталогов, см. Правку.
Уверены ли вы? Просто ввел терминал и сказал, что это недопустимая опция, даже набрал «man ln», а «-d» не было. Все равно, спасибо за помощь!
@Mekul Ах, у меня установлен GNU ln с Homebrew, извиняюсь. Теперь я отметил это в своем ответе.
Извини, что опять тебя беспокою. Последний раз. Уже установлен Homebew, что это за GNU, tar, sed, отступ и т. д. Спасибо :)
@Mekul Все в порядке, это моя вина! Я все это делаю на телефоне по памяти, в следующий раз просто подожду, пока буду за компом! Я считаю, что это часть пакета «coreutils» и называется «gln», чтобы не заменять существующий «ln».
Без проблем, не к спеху! Я установил «coreutils», а затем набрал «brew install gln», и появилось около 50. Я очень ценю ваши быстрые ответы.
@Mekul Я имел в виду установить coreutils, а затем команда становится «sudo gln -d…», больше ничего не нужно устанавливать.
Мои извенения. Сейчас я тестирую команду, и вы узнаете, как она работает. Ваше здоровье
sudoне кажется необходимым.
Но если исходные файлы редактируются, ссылка не обновляется, и поэтому GDrive Sync не запускается. Мне приходится запускать команду link каждый раз, когда я хочу обновить GDrive.

Google Диск кажется бесполезным, если вы не хотите реорганизовать свой диск.

Sugarsync разработан с учетом потребностей Windows. Это действительно элегантно и позволяет синхронизировать существующие папки, где бы они ни находились. Я использовал его некоторое время. У него есть клиент для Mac, но это все, что они в него вложили. Он не может правильно синхронизировать пакеты. Пакеты — это структура UNIX, которую Mac использует для приложений и файлов данных. Так я избавился от Sugarsync.

Microsoft OneDrive не использует символические ссылки, и я не думаю, что они даже знают, что такое пакеты.

С другой стороны, Dropbox учитывает символические ссылки и корректно обрабатывает пакеты.

Жесткая ссылка традиционно работает только для файла, а не для каталога.

Хотя HFS+ поддерживает жесткие ссылки на каталоги, это скорее внутренняя функция, зарезервированная для Time Machine . Используйте его на свой страх и риск.

Вы можете посмотреть SugarSync , который утверждает

Сделайте резервную копию и получите доступ к своим файлам. Используя существующую структуру папок.

Личный опыт работы с жесткой ссылкой на каталог таков:

  • Я уменьшаю, а затем увеличиваю диск Time Machine, который активно использует жесткую ссылку на каталог.
  • Затем резервные данные перепутались
  • Приходится форматировать раздел, теряя историю

В macOS Sierra и с новым решением coreutils в предыдущем посте не работает должным образом.

1) Вам понадобится gnu coreutils. Вы можете установить его через homebrew.

brew install coreutils

2) (необязательно) вы можете ввести gln --help, чтобы получить руководство по использованию этой команды. Это выведет 4 способа:

  1. Использование: gln [ВАРИАНТ]... [-T] TARGET LINK_NAME (1-я форма)
  2. или: gln [ВАРИАНТ]... ЦЕЛЬ (2-я форма)
  3. или: gln [ВАРИАНТ]... ЦЕЛЬ... КАТАЛОГ (3-я форма)
  4. или: gln [ОПЦИЯ]... -t ЦЕЛЬ СПРАВОЧНИКА... (4-я форма)

    В первой форме создайте ссылку на TARGET с именем LINK_NAME.

    Во 2-й форме создайте ссылку на ЦЕЛЬ в текущем каталоге.

    В 3-й и 4-й формах создайте ссылки на каждую ЦЕЛЬ в СПРАВОЧНИКЕ.

3) Перейдите в «папку диска» Google (GD) или любую подпапку GD через командную строку:

3.a) Вы можете ввести тип терминала cd(пробел после «d») и перетащить папку/каталог в окно терминала.

3.b) или просто введите свой путь к месту назначения, например cd /Users/yourAccountName/Google\ Drive/sub/subSubFolder , где «yourAccountName» — это имя вашей учетной записи в ОС, а «sub/subSubFolder» — структура вашей папки в GD. Обратите внимание, что вам нужно «экранировать» специальные символы в пути к файлу и имени с помощью обратной косой черты ('\'), как я сделал с пробелом в имени папки «Google Диск», поэтому теперь он выглядит как «Google\ Диск».

4) И, как пояснил grgarside в своем посте, вам нужно использовать ключ sudoи -dдля выполнения связывания. Итак, просто введите:

sudo gln -d '/Users/yourAccountName/path/to/original/folder/with/your/stuff'

Два способа получить много файлов/папок на Google Диске без изменения файловой структуры:

  1. Если установлен Google Диск для Mac: продублируйте соответствующие папки и перетащите их копии в папку Google Диска.

ИЛИ

  1. Использование Google Диска с Google Chrome: перетащите соответствующие папки в окно Google Диска в Chrome; они будут загружены, и это не испортит вашу файловую структуру.

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

Я знаю, что ни один из них не является тем, что вы просили, но они оба должны выполнять свою работу. Комментарий ниже для чего-нибудь еще.