我正在尝试将我的Library / Fonts目录与我的Dropbox中的文件夹进行符号链接,这样我就不必继续安装并确定哪台机器具有我需要的字体。当我尝试这个时:
ln -s Fonts/ ~/Library/Fonts
我得到了这个错误:
ln: /Users/Username/Library/Fonts/: File exists
我无法删除该文件夹,因为它是系统所要求的,因此不会让您删除。
答案 0 :(得分:1)
从Dropbox目录中删除Fonts文件夹(显然你想要移动任何你想要保存的文件),然后输入:
ln -s ~/Library/Fonts Fonts
请注意,不要为最后一个字体目录追踪/
。
编辑以发表评论: 你是对的,这只链接到一个/ Library / Fonts文件夹。您可以尝试在一台计算机上执行此操作,然后在其他计算机上尝试:
ln -s ~/Library/Fonts Fonts
)我没有试过这个,所以我不知道它是否会起作用,但它不会造成伤害。
明确 工作的另一种选择是设置一个cron作业,将〜/ Library / Fonts文件夹中任何不存在的字体复制到〜/ Dropbox / Fonts文件夹中反之亦然。如果符号链接技巧有效,我认为这将是首选。
答案 1 :(得分:1)
ln -s -F
将强制创建删除原始目标的链接。
答案 2 :(得分:1)
此方法 仅在 目标文件夹已符号链接时才有效。
使用OSX或BSD派生的unix附带的ln
:
ln -s -h -F /source/folder/to/use /destination/folder/to/overwrite
-h
是关键所在。否则你最终会得到类似〜/ Library / Fonts / Fonts 的内容,因为它遍历该文件夹。仅-F
不会尝试覆盖,因为一旦它进入该文件夹就不会发生冲突。
ln manpage的相关部分:
ln [-Ffhinsv] source_file ... target_dir
-s Create a symbolic link.
-h If the target_file or target_dir is a symbolic link, do not follow it.
This is most useful with the -f option, to replace a symlink which may
point to a directory.
-F If the target file already exists and is a directory, then remove it
so that the link may occur.
GNU coreutils ln
用户:
如果您使用ln
包(linux,brew,macports等)中的 GNU coreutils
,请使用{{ 1}}:
-T
另外,使用 GNU ln -sTf /source/folder/to/use /destination/folder/to/overwrite
,可以替换普通文件夹。查看ln
选项的联机帮助页,使用它指定目标文件夹的父级:
-t
在父目录中定位创建需要尾随ln -sf -t /destination/folder/to/overwrite/.. /source/folder/to/use
,并将其留在原位。