У меня есть папка с большими файлами. Я хочу, чтобы эта папка находилась в двух разных местах одновременно - мои домашние документы и моя папка с документами колледжа.
Я сделал это с помощью символической ссылки из папки College в папку Home.
К сожалению, Dropbox синхронизирует мою папку College - и мое файловое пространство было быстро использовано.
Использует ли Dropbox жесткие ссылки, и если да, то как их создать?
Оказывается, что этот ответ был ошибочен, см. сообщение Andrew для корректного ответа.
Да я делаю.
я протестировал его со стандартной бесплатной учетной записью Dropbox с папкой Dropbox в btrfs объеме.
тест был:
ln /media/username/volume/Documents/testfile /media/username/volume/Dropbox/testfile
ls -li /media/username/volume/Documents/testfile
ls -li /media/username/volume/Dropbox/testfile
первое число от ls -li
команда показывает th inode число, число между полномочиями и именем пользователя является счетчиком ссылки (шоу, сколько жестких ссылок файл имеет).
Сразу после выполнения ln управляют, чтобы значок попытки Dropbox показал действие и эффективно загрузил тестовый файл.
я также протестировал для создания второй жесткой ссылки в папке Dropbox, и она также загрузила файл, я не уверен, знает ли это, что это - только один.
Мой тестовый файл составляет маленькие 18 КБ .ods файл, но он должен также работать большие файлы.
О жестких ссылках и inodes:
при создании жесткой ссылки файла, Вы даете ему просто второе имя в другой папке (или то же, если Вам нравится к).
Это - файлы, действительно не помещаются в папки, они находятся на жестком диске, определенном i-узлом (зависит от типа файловой системы).
Поэтому, что такое папки?
Папка является просто списками, также определенными i-узлом, которые содержат названия файлов и других папок, которые являются 'в' них. Каждый элемент в этом списке указывает на, он - соответствующий i-узел.
Поэтому, если Вы создаете жесткие ссылки и/весь указываете на тот же i-узел и поэтому все они, просто регистрирует (тот же).
знать, что некоторые приложения отказываются делать свое задание с файлами, которые имеют жесткие ссылки. Другие приложения могут случайно или намеренно повредиться, жесткие ссылки, поворачивающие один файл с, говорят что 2 имени в два файла с одним именем каждый.
Википедия дает нам больше информации:
https://en.wikipedia.org/wiki/Hard_link
https://en.wikipedia.org/wiki/Inode
Для создания жестких ссылок можно использовать ln
, который является инструментом командных строк, можно использовать его как это:
ln TARGET LINK_NAME
, Где цель является существующим файлом и link_name новое название файла. Когда Вы сделаны, можно свериться ls -li
количество i-узла файла и видеть, что обе ссылки имеют то же число.
Вот страница справочника: http://linux.die.net/man/1/ln
Нет, это не делает.
при обновлении файла Dropbox разрывает все связи. Таким образом в примере @Falk дает выше, если бы он отредактировал тот файл от удаленного компьютера, когда он синхронизировал назад ссылку, был бы поврежден, и Dropbox содержал бы новый файл, названный testfile (Falks conflicted copy)
.
единственная ссылка, какие работы являются гибкой ссылкой, где исходный файл является тем в папке Dropbox. Вот сценарий, который я раньше тестировал:
# symlink with target inside dropbox
echo "symbolic link test" > ~/Dropbox/symlinkToDropbox.txt
ln -s ~/Dropbox/symlinkToDropbox.txt ~/symlinkToDropbox.txt
cat ~/symlinkToDropbox.txt
echo "edit target of symlink" >> ~/Dropbox/symlinkToDropbox.txt
echo "edit symlink" >> ~/symlinkToDropbox.txt
cat ~/symlinkToDropbox.txt
cat ~/Dropbox/symlinkToDropbox.txt
# symlink with target outside dropbox
echo "symbolic link test" > ~/symlinkFromDropbox.txt
ln -s ~/symlinkFromDropbox.txt ~/Dropbox/symlinkFromDropbox.txt # relative symlinks don't work
cat ~/Dropbox/symlinkFromDropbox.txt
echo "edit target of symlink" >> ~/symlinkFromDropbox.txt
echo "edit symlink" >> ~/Dropbox/symlinkFromDropbox.txt
cat ~/symlinkFromDropbox.txt
cat ~/Dropbox/symlinkFromDropbox.txt
# hard link with target inside dropbox
echo "hard link test" > ~/Dropbox/hardlinkToDropbox.txt
ln ~/Dropbox/hardlinkToDropbox.txt ~/hardlinkToDropbox.txt
echo "edit target" >> ~/Dropbox/hardlinkToDropbox.txt
echo "edit linked file" >> ~/hardlinkToDropbox.txt
cat ~/hardlinkToDropbox.txt
cat ~/Dropbox/hardlinkToDropbox.txt
# hard link with target inside dropbox
echo "hard link test" > ~/hardlinkFromDropbox.txt
ln ~/hardlinkFromDropbox.txt ~/Dropbox/hardlinkFromDropbox.txt
echo "edit linked file" >> ~/Dropbox/hardlinkFromDropbox.txt
echo "edit target" >> ~/hardlinkFromDropbox.txt
cat ~/Dropbox/hardlinkFromDropbox.txt
cat ~/hardlinkFromDropbox.txt
#all of that works fine.
#But now open all of those files from your dropbox folder on another computer and edit them
#Your dropbox will sync, your local versions of all those files will be updated, but NONE OF THE LINKED FILES WILL UPDATE
#The hard links are replaced and the old versions copied as "conflicted copies"
#The symlink where the dropbox file was the link is unlinked
#the symlink where the dropbox file is the original is the only one that works