4

Library/Fonts ディレクトリを Dropbox 内のフォルダとシンボリック リンクしようとしています。これにより、必要なフォントがどのマシンにあるかをインストールして把握し続ける必要がなくなります。これを試すと:

ln -s Fonts/ ~/Library/Fonts

私はこのエラーを返します:

ln: /Users/Username/Library/Fonts/: File exists

システムに必要なため、フォルダーを削除できず、削除できません。

4

3 に答える 3

1

ln -s -Fリンクを作成する前に、元のターゲットを削除してリンクを強制的に作成します。

于 2012-10-01T01:19:49.463 に答える
1

このメソッドは、ターゲット フォルダーが既にシンボリック リンクである場合にのみ機能します。

lnOSX または BSD 由来の UNIX に同梱されている を使用する:

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ユーザー:

パッケージ(linux、brew、macports など)のGNU lnを使用している場合は、次を使用します。coreutils-T

ln -sTf /source/folder/to/use /destination/folder/to/overwrite

さらに、GNU lnを使用すると、通常のフォルダーを置き換えることができます。オプションのマンページを見て、-tそれを使用してターゲットフォルダーの親を指定します。

ln -sf -t /destination/folder/to/overwrite/.. /source/folder/to/use

/..ディレクトリ内の作成をターゲットにするために末尾が必要です。そのままにしておきます。

于 2012-10-01T10:39:30.947 に答える
1

Dropbox ディレクトリから Fonts フォルダーを削除し (ファイルを別の場所に移動する必要があることは明らかです)、次のように入力します。

ln -s ~/Library/Fonts Fonts

その最後の Fonts ディレクトリの末尾は必要ないことに注意してください。/

コメントに対処するために編集:これが 1 つの /Library/Fonts フォルダーにのみリンクしていることは間違いありません。あるマシンでこれを試してから、他のマシンで試してみてください。

  1. ドロップボックスをオフにする
  2. ~/Dropbox/Fonts フォルダーに保存します。
  3. 最初のコンピューターと同じシンボリック リンク機能を実行します ( ln -s ~/Library/Fonts Fonts)
  4. このマシンにない可能性のあるフォントをコピーします
  5. Dropbox をオンに戻す

私はこれを試していないので、うまくいくかどうかはわかりませんが、害はないはずです.

確実に機能するもう 1 つの方法は、cron ジョブを設定して ~/Library/Fonts フォルダーに存在しないフォントを ~/Dropbox/Fonts フォルダーにコピーすることです。その逆も同様です。シンボリックリンクのトリックがうまくいくなら、それが好ましいと思います。

于 2012-09-30T23:44:59.860 に答える