我做了一些指向文件夹中文件的链接。当我将该文件夹添加到Dropbox时,链接包含链接到的文件的重复副本。你有这个问题吗?你知道发生了什么吗?有解决方案吗?
为了使这个问题更清楚:在文件管理器的“类型”列中,连接到Dropbox之前,Link_to_notes显示为链接,大小为32字节。连接到Dropbox后,Link_to_notes显示为纯文本文档,大小为18.7 kB,即Notes文件的大小。
我做了一些指向文件夹中文件的链接。当我将该文件夹添加到Dropbox时,链接包含链接到的文件的重复副本。你有这个问题吗?你知道发生了什么吗?有解决方案吗?
为了使这个问题更清楚:在文件管理器的“类型”列中,连接到Dropbox之前,Link_to_notes显示为链接,大小为32字节。连接到Dropbox后,Link_to_notes显示为纯文本文档,大小为18.7 kB,即Notes文件的大小。
Answers:
DropBox遵循符号链接并将其视为目录。对于备份而不必将文件和目录移动到DropBox目录中,它确实非常有用。
$ ln -s ~/Documents/ ~/Dropbox/Documents
最好的方法是将文件存储在dropbox文件夹中,并从外部对其进行符号链接...
因此,创建〜/ Dropbox / Documents和符号链接:
ln -s ~/Dropbox/Documents ~/Documents
这可以防止Dropbox变得混乱,并取消内部链接的任何链接,因为您拥有所有内容,而当您希望将它们放置在其他位置时,可以在Dropbox中链接到它们。基本规则是,在dropbox文件夹内的任何位置都没有任何符号链接...将它们放在dropbox文件夹外,您将没有问题。
我在几台ubuntu机器上都有保管箱,所有主要的顶级文件夹实际上都存储在保管箱中。
TL; DR:以下是一种仅在图形用户界面(GUI)级别上获得与符号链接非常类似的行为的方法,如果您不希望DropBox重复将相同文件复制到DropBox中的不同文件夹中,则该方法特别有用只是因为您想从不同的位置(即文件夹路径)查看它们。
如果我在DropBox文件夹层次结构中创建符号链接(符号链接),甚至填满帐户,都会被DropBox复制文件夹所困扰。正如许多人在网络上指出的那样,DropBox缺乏正确处理符号链接的方法并没有真正的解决方法,这是不幸的,因为这样做并不难。
但是,我使用的一种解决方法是在DropBox层次结构中实现符号链接的等效行为---其他人通常称为“内部符号链接” ---在没有DropBox复制所有内容的情况下,创建等效于Windows快捷方式文件(即,MS生态系统中的.lnk文件)。为此,我创建了一个.desktop文件,该文件将系统的文件管理器打开到所需的路径。因此,此解决方法仅在GUI级别有效,并且仅适用于XDG兼容系统(例如,Ubuntu,基于GNOME的系统以及许多其他系统)。
例如,我正在阅读高级Python技术,以从事一项新工作,正在阅读的PDF存储在GoodReader应用(iOS)的DropBox文件夹中,因此我可以在桌面上阅读它们和我的移动设备。无需深入到该文件夹(/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
(注:一定要适应Exec=nautilus ...
,如果你使用的不是其他的Nautilus文件管理器部分,当然你会想适应Name=
,Icon=
在中和路径部分Exec=
的每一个“符号链接”您希望创建行。)
这样,我在桌面上看到一个名为Python的文件夹,其作用类似于符号链接---即,双击它会打开相应的文件夹---但只有一个小的文本文件(例如Python)。桌面)同步到DropBox和我的其他系统(与之相反,所有内容最终都会被DropBox复制到各处)。
与其他.desktop文件一样,必须设置许可权,以使文件既可读又可执行(例如chmod 700 Python.desktop
或chmod 755 Python.desktop
),以使所显示的图标显示并双击它可以实际执行任何操作。
总而言之,在本示例中,我将始终在DropBox中的某个位置提供实际文件/home/morse/lib/active/GoodReader/Books/Python
---但在所有基于linux的系统中,我还将拥有一个桌面“快捷方式”还配置了DropBox。
当然,此解决方法在命令行级别上不起作用,就像真正的符号链接一样。
就是说,这在GUI级别上确实是一种新颖的解决方法,我从未在其他地方看到过这种解决方法。因此,我希望这种方法可以对其他人有用。
压缩链接并将压缩文件保存到Dropbox
先前的答复是详尽无遗的。我只是建议基于单一原则的三种解决方法。第三个看起来比较困难,但是非常有效。这个想法是:将符号链接压缩到tar文件(Dropbox不会将其视为链接),然后将其保存到Dropbox。第三种方法几乎与将链接直接复制到Dropbox一样直接-实际上比逐个复制几个链接要快得多。
我通常在Lubuntu安装中使用大约20个符号链接,例如用于快速访问保存在Dropbox中的bash脚本,外部硬盘,经常使用的文档等。它们都在我的主目录和桌面中,我找到了具有它们的Dropbox副本以用于其他安装或dist-upgrade时(即在尝试dist-upgrade后重新安装时)使用起来很方便。
第一种方式
您创建一个名为MyLinks的目录(例如,在Documents中),并将所有主符号链接复制到该目录;如果您在其他目录中有符号链接,请在MyLinks中创建子目录,然后将符号链接复制到它们。例如,如果要保存的链接位于home和Desktop中,则将home链接复制到MyLinks,在其中创建一个名为Desktop的目录,然后将Desktop链接复制到其中。然后打开一个终端,cd Documents(假设这是MyLinks所在的目录)并制作一个tar文件:
tar -cvf MyHomeLinks.tar MyHomeLinks
(请记住在tarfile名称中添加扩展名“ .tar”,否则Ubuntu Archive Manager会拒绝打开它。)如果这样做,请注意不要在tar中添加选项-h(--dereference)。就像Dropbox一样,并压缩目标文件而不是符号链接。(顺便说一句,在大多数情况下,这种行为将是受欢迎的,尤其是如果一个目标是可移植性,但不是要保存符号链接为符号链接。)
tar文件还将包含临时断开的链接,例如指向当前未安装的外部硬盘的链接-很好。
将tar文件保存在您的Dropbox中。当您需要返回链接时,将tar文件复制到文件系统中的目录中(不在Dropbox中),解压缩(只需右键单击并选择“在此处提取”),然后将符号链接复制回您想要的位置。
第二路
如果要保存的符号链接具有明确的前缀(例如“ MySl” ...),则可以通过这种方式非常快速地创建tarfile(添加不必要的空格以防止出错):
find . -name "MySl*"|xargs tar cvf MyLinks.tar
“查找”后的单点表示当前目录:在主目录中打开终端(默认情况下)。您可以肯定地将路径添加到tar文件,并且可以从不位于主目录的另一个目录中发出命令:替换“。”。以及您的家庭/用户的路径。无需像上面的MyLinks那样创建工作目录。恢复符号链接也很快:将tarfile复制到家中,右键单击它并“在此处提取”。但是,在开始为符号链接的所有名称加上前缀之前,请查看下一个选项。
第三种方式(最好)
收集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 ...)。只需在主目录(即/ home / user)中创建一个名为.bash_aliases的新空文件,然后使用文本编辑器将其打开,并在其中写入以下行即可:
alias save_symlinks='find . Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar'
用您选择的目录替换“ find”之后的目录,并用您选择的命令名替换“ save_symlinks”。要还原,请打开文件管理器(如果以上命令中目录的路径不是绝对路径,则tarfile必须位于主目录/用户中),右键单击并解压缩。
如果这样做,生活会更轻松。您要做的就是:
保存:在终端中输入save_symlinks,将tar文件保存到Dropbox中;恢复:将文件从Dropbox复制到您的主目录,右键单击它,然后选择“在此处提取”。