Macos 如何在不包含实际文件夹的情况下对文件夹内容进行符号链接?
我正在尝试将我的Library/Fonts目录与Dropbox中的一个文件夹进行符号链接,这样我就不必一直安装并确定哪台机器有我需要的字体。当我尝试这个:Macos 如何在不包含实际文件夹的情况下对文件夹内容进行符号链接?,macos,bash,dropbox,Macos,Bash,Dropbox,我正在尝试将我的Library/Fonts目录与Dropbox中的一个文件夹进行符号链接,这样我就不必一直安装并确定哪台机器有我需要的字体。当我尝试这个: ln-s字体/~/Library/font 我得到这个错误作为回报: ln:/Users/Username/Library/font/:文件存在 我无法删除该文件夹,因为它是系统要求的,因此不允许您删除。从Dropbox目录中删除Fonts文件夹(显然您希望将任何要保存在其他地方的文件移动),然后键入: ln -s ~/Library/Fon
ln-s字体/~/Library/font
我得到这个错误作为回报:
ln:/Users/Username/Library/font/:文件存在
我无法删除该文件夹,因为它是系统要求的,因此不允许您删除。从Dropbox目录中删除Fonts文件夹(显然您希望将任何要保存在其他地方的文件移动),然后键入:
ln -s ~/Library/Fonts Fonts
请注意,您不希望最后一个字体目录的尾部为/
编辑以处理评论:
您是对的,这只链接到一个/Library/font文件夹。您可以尝试在一台计算机上执行此操作,然后在另一台计算机上尝试:
ln-s~/Library/Fonts font
)另一种肯定有效的方法是设置cron作业,将~/Library/fonts文件夹中任何不存在的字体复制到~/Dropbox/fonts文件夹,反之亦然。如果符号链接技巧有效,我认为这是首选。
ln-s-F
将强制创建链接,并在创建链接之前删除原始目标。只有当目标文件夹已经是符号链接时,此方法才有效
使用OSX或BSD派生Unix附带的ln
:
ln-s-h-F/source/folder/to/use/destination/folder/to/overwrite
-h
是这里的关键。否则,您将得到类似~/Library/Fonts/Fonts的结果,因为它会在该文件夹中遍历。-F
本身不会试图覆盖,因为一旦进入该文件夹,它就不会看到冲突
ln的相关部分:
GNU coreutils
ln
用户:
如果您使用的是coreutils
软件包(linux、brew、macports等)中的GNUln
,请使用-T
:
ln-sTf/source/folder/to/use/destination/folder/to/overwrite
此外,使用GNUln
可以替换普通文件夹。查看其手册页中的-t
选项,使用它指定目标文件夹的父文件夹:
ln-sf-t/destination/folder/to/overwrite//来源/文件夹/收件人/使用
需要使用尾随的
/…
来在父目录中创建目标,将其保留在原位。不正确,您可以删除该文件夹。如果它不存在,系统会重新制作。但在Mtn Lion上不行。你得到了一个错误。你试过从命令行吗?你也试过ln-s-F
强制链接吗?另一件事你可以尝试重命名目录而不是删除:mv~/Library/Fonts~/Library/Fonts
@prodigitalson,这是可行的,但不幸的是,现在我正试图弄清楚为什么在你进行符号链接时字体没有安装。不过谢谢。这不起作用,因为我无法在其他机器上设置符号链接。这不是我真正想要的解决方案,因为我有3-5台机器,它们可以经常更改。必须关闭Dropbox并手动复制字体,这样做是徒劳的。@APERMANENTCREAR:其概念是每台机器上只执行一次。正如我指出的,我还没有尝试过这个,所以我不知道它是否有效。假设他使用OSX附带的ln
,他也需要-h
。我刚刚发布了一篇关于这方面的文章。我确实投了你的票,因为它比我的早很多,而且在技术上对很多用户来说都是正确的。:)
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.