Как работают символические ссылки в Dropbox?

Я сделал несколько ссылок на файлы в папке. Когда я добавил эту папку в Dropbox, ссылки содержали дублированные копии файлов, на которые они ссылаются. У вас была эта проблема? Вы понимаете, что происходит? Есть ли решение?

Чтобы прояснить этот вопрос: в столбце «Тип» файлового менеджера перед подключением к Dropbox было показано, что Link_to_notes является ссылкой, а размер составляет 32 байта. После подключения к Dropbox было показано, что Link_to_notes представляет собой простой текстовый документ, и его размер составляет 18,7 КБ, размер файла заметок.

20
задан 7 January 2013 в 07:01

5 ответов

dropbox будет следовать ссылкам sym на каталоги, но он разорвет ссылку (sym или hard) на файл и заменит его файлом.

0
ответ дан 7 January 2013 в 07:01

DropBox следует по символическим ссылкам и рассматривает их как каталоги. Это действительно полезно для резервного копирования без необходимости перемещать файлы и каталоги в каталог DropBox.

$ ln -s ~/Documents/ ~/Dropbox/Documents
0
ответ дан 7 January 2013 в 07:01

Лучший способ сделать это - хранить файлы в папке dropbox и ссылаться на них извне ...

Создайте ~ / Dropbox / Documents and symlink:

ln -s ~/Dropbox/Documents ~/Documents

Это не даст сбить с толку dropbox и отсоединить все, что является ссылкой внутри, потому что у вас есть все внутри и вместо того, когда вы хотите их в другом месте вы ссылаетесь на них в Dropbox. Основное правило: не размещайте символические ссылки внутри папки dropbox ... размещайте их вне папки dropbox, и у вас не возникнет проблем.

У меня есть Dropbox на нескольких машинах с Ubuntu, и все мои основные папки верхнего уровня хранятся в Dropbox.

0
ответ дан 7 January 2013 в 07:01

TL; DR: ниже приведен способ получить поведение, очень похожее на символические ссылки, только на уровне графического интерфейса пользователя (GUI), что особенно полезно, если вы не не хотите, чтобы DropBox повторно копировал одни и те же файлы в разных папках в иерархии DropBox только потому, что вы хотите просматривать их из разных мест (то есть путей к папкам).

Фон

Неоднократно меня сжигали дубликаты папок DropBox, если я создавал символические ссылки (символические ссылки) в иерархии папок DropBox, даже до момента заполнения моей учетной записи. Как отмечают многие в Интернете, в DropBox нет правильного решения проблемы правильной обработки символьных ссылок, что вызывает сожаление, поскольку им не составит труда сделать это.

Обходной путь

Один из обходных путей, который я использую, однако, для достижения эквивалентного поведения символических ссылок в иерархии DropBox - то, что другие часто называют «внутренними символическими ссылками» - без дублирования DropBox - создать эквивалент файла ярлыка Windows (т. е. файла .lnk в экосистеме MS). Я делаю это, создавая файл .desktop, который открывает файловый менеджер моей системы по нужному пути. Таким образом, этот обходной путь работает только на уровне графического интерфейса и только для XDG-совместимых систем (например, Ubuntu, системы на основе GNOME и многие другие).

Пример

Например, я читаю о продвинутых техниках Python для новой работы, которую я беру, и PDF-файлы, которые я читаю, хранятся в моей папке DropBox для приложения GoodReader (iOS) ) так что я могу читать их как на рабочем столе, так и на мобильных устройствах. Вместо того, чтобы переходить к этой папке (/home/morse/lib/active/GoodReader/Books/Python), я просто создаю папку Python.desktop в /home/morse/Desktop со следующим содержимым:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Name=Python
Exec=nautilus /home/morse/lib/active/GoodReader/Books/Python
Icon=/usr/share/icons/MacBuntu-OS/places/96/stock_folder.png
Terminal=false

(Примечание. Обязательно адаптируйте [ 114], если вы используете файловый менеджер, отличный от Nautilus, и, конечно, вы захотите адаптировать часть Name=, Icon= и путь строки Exec= для каждой «символической ссылки», которую вы хотите создать. )

С этим я вижу на своем рабочем столе папку с именем Python, которая действует как символическая ссылка - то есть я дважды щелкаю по ней, и она открывает соответствующую папку - но только небольшую Текстовый файл (например, Python.desktop) синхронизируется с DropBox и другими моими системами (в отличие от всего содержимого, которое в конечном итоге дублируется DropBox).

Как и в случае других файлов .desktop, разрешения должны быть установлены таким образом, чтобы файл был как читаемым, так и исполняемым (например, chmod 700 Python.desktop или chmod 755 Python.desktop) для отображения указанного значка и для двойного щелчка по нему, чтобы фактически что-либо делать .

Резюме

Таким образом, в итоге у меня всегда будут фактические файлы, доступные где-то в DropBox - в этом примере /home/morse/lib/active/GoodReader/Books/Python - но у меня также будет ярлык на рабочем столе «для всех моих систем на основе Linux, для которых я также настроил DropBox.

Конечно, этот обходной путь не работает на уровне командной строки, как истинная символическая ссылка.

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

0
ответ дан 7 January 2013 в 07:01

Сожмите ваши ссылки и сохраните сжатый файл в Dropbox

Предыдущие ответы являются исчерпывающими и понятными. Я просто предлагаю три обходных пути, основанные на одном принципе. Третий выглядит сложнее, но он очень эффективен. Идея такова: сжать ваши символические ссылки в файл tar, который Dropbox не будет рассматривать как ссылку, и сохранить его в Dropbox. Третий способ почти такой же прямой, как и копирование ваших ссылок непосредственно в Dropbox - на самом деле гораздо быстрее, чем копирование нескольких ссылок одна за другой.

У меня есть около двадцати символических ссылок, которые я обычно использую в своей установке Lubuntu, например, для быстрого доступа к bash-сценариям, сохраненным в Dropbox, к внешним hdds, к часто используемым документам и т. д. Все они находятся в моем домашнем каталоге и на рабочем столе, и я считаю удобным иметь их копию Dropbox для использования в других установках или когда Я dist-upgrade (то есть когда переустанавливаю после попытки dist-upgrade;).

1-й способ

Вы создаете каталог MyLinks (скажем, в Documents) и копируете на него все свои домашние символические ссылки; если у вас есть символические ссылки в других каталогах, создайте подкаталоги в MyLinks и скопируйте в них свои символические ссылки. Например, если ссылки, которые вы хотите сохранить, находятся дома и на рабочем столе, скопируйте домашние ссылки на MyLinks, создайте в нем каталог с именем Desktop и скопируйте на него ссылки рабочего стола. Затем откройте Terminal, cd Documents (при условии, что это каталог, в котором находится MyLinks) и создайте файл tar:

tar -cvf MyHomeLinks.tar MyHomeLinks

(не забудьте добавить расширение «.tar» к имени файла tarfile или Ubuntu. Менеджер архивов откажется открывать его.) Если вы сделаете это, будьте осторожны, не добавляйте опцию -h (--dereference) в tar, поскольку она будет точно вести себя как Dropbox и вместо этого сжимает целевые файлы из символических ссылок. (Кстати, такое поведение будет приветствоваться в большинстве случаев, особенно если кто-то стремится к переносимости, но это не так, если кто-то хочет сохранить символические ссылки как символические ссылки.)

Файл tar также будет включать временно прерванные ссылки, такие как ссылки на внешние жесткие диски, которые в настоящее время не смонтированы - это нормально.

Сохраните файл tar в вашем Dropbox. Когда вам понадобятся ссылки назад, скопируйте файл tar в каталог в вашей файловой системе (не в Dropbox), распакуйте его (просто щелкните правой кнопкой мыши и выберите «Извлечь здесь») и скопируйте символические ссылки обратно в места, где вы хотите их получить. .

2-й способ

Если символические ссылки, которые вы хотите сохранить, имеют однозначный префикс (например, «MySl» ...), вы можете очень быстро сделать свой файл таким образом (не нужно) пробелы добавлены для предотвращения ошибок):

find   .   -name   "MySl*"|xargs  tar  cvf  MyLinks.tar

Точка после «find» означает текущую директорию: откройте Terminal в вашей домашней директории (по умолчанию). Вы можете обязательно добавить путь к файлу tar и выполнить команду из другого каталога, который не является домашним: замените «.» с путем к вашему дому / пользователю. Не нужно делать рабочие каталоги, как MyLinks выше. Восстановление символических ссылок также выполняется быстро: вы копируете tarfile на дом, нажимаете на него правой кнопкой мыши и «извлекаете здесь». Однако, прежде чем начать префикс всех имен ваших ссылок, взгляните на следующую опцию.

3-й способ (и лучший)

Очень быстрый способ собрать все ваши символические ссылки в файле tar: открыть Терминал в вашем доме / пользователе (который используется по умолчанию, когда вы открываете терминал) и:

find  .  -type  l|xargs  tar  -cvf  AllLinks.tar

Недостатком является то, что вы получаете ВСЕ ваши ссылки в нем, включая некоторые символические ссылки mozilla или hplip, о которых вы даже не подозревали. Чтобы избежать этого и скопировать все и только символические ссылки из указанного списка каталогов без рекурсии , вы пишете список после «find» в приведенной выше команде. Скажем, вы хотите сохранить ссылки из дома / пользователя и рабочего стола; Вы можете написать

 find /home/<USER>/ /home/<USER>/Desktop/ -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

«- maxdepth 1», чтобы предотвратить повторное обнаружение поиска через дом. Вы можете добавить путь к tarfile, если хотите. В качестве альтернативы:

 find .  Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

Если вы ленивы и хотите использовать это часто, вы можете добавить его в качестве псевдонима к .bashrc или .bash_aliases в вашем домашнем каталоге (.bash_aliases - очень удобный способ для собирать ваши псевдонимы и, почему бы и нет, сохранять их в Dropbox ...). Просто создайте новый пустой файл с именем .bash_aliases в вашем домашнем каталоге (то есть / home / user), откройте его в текстовом редакторе и напишите в нем следующую строку:

alias save_symlinks='find . Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar'

Замените каталоги после "find" с теми, которые вы выбрали, и "save_symlinks" с именем команды по вашему выбору. Чтобы восстановить, откройте ваш файловый менеджер (если путь к каталогам в приведенной выше команде не абсолютен, файл tar должен быть в home / user), щелкните правой кнопкой мыши и извлеките его.

Если вы сделаете это, жизнь станет проще. Все, что вам нужно сделать, это:

SAVE: введите save_symlinks в Terminal, сохраните tar-файл в вашем доме в Dropbox; ВОССТАНОВЛЕНИЕ: скопируйте файл из Dropbox в домашнюю директорию, щелкните по нему правой кнопкой мыши и выберите «извлечь здесь».

0
ответ дан 7 January 2013 в 07:01

Другие вопросы по тегам:

Похожие вопросы: