GNU stowを使用して元のディレクトリとシンボリックディレクトリ間のファイルとシンボリックリンクを同期する方法は?

GNU stowを使用して元のディレクトリとシンボリックディレクトリ間のファイルとシンボリックリンクを同期する方法は?

たとえば、私は~/.local/bin/その中を指すシンボリックリンクを置きました~/Dotfiles.d/local/.local/bin/

これを行うには、次のガイドラインを使用します。

$ cd ~/Dotfiles.d/
$ stow -v local

したがって、stowローカルのすべてのファイル(.local/bin/* を含む)へのリンクが生成されます。~/.local/bin/*

ただし、binディレクトリに新しいファイルを追加する必要があるときにファイルを追加する方法は、2つのディレクトリ間~/.local/bin/~/Dotfiles.d/local/.local/bin/ファイルstowを同期できません。

私が望むもの:

  1. 新しいファイルを直接追加すると、~/.local/bin/実際には新しいファイルが自動的に追加され、~/Dotfiles.d/local/.local/binシンボリックリンクも自動的に作成されます~/.local/bin/
  2. に新しいファイルを追加すると、~/Dotfiles.d/local/.local/bin/そのファイルへのシンボリックリンクが自動的に作成されます~/.local/bin/

できますかstow

答え1

GNU Stowは双方向同期または連続同期を実装せず、そうすることを意図していませんでした。主な作業は、Stowディレクトリの下のStowパッケージツリーのファイルとディレクトリを指すターゲットディレクトリのシンボリックリンクを管理することです。 (望むよりマニュアルの用語セクションこれらの用語の正確な定義を学びます。 )

したがって、あなたの2つの要求に対する答えは次のようになります。

  1. localいいえ、Stowはユーザーが新しいファイルをStowディレクトリ()の下のパッケージに配置するのか、それとも別のパッケージに配置するのかを知ることができないため、これは意図的に不可能です~/Dotfiles.d。ただしlocal、このオプションを使用すると、新しいファイルがパッケージツリーの下の対応するパスに追加された場合に、--adopt一般ファイルの新しいファイルを~/.local/bin/シンボリックリンクに置き換えることができます。
  2. 「自動で」という言葉がユーザー介入なしに意味する場合はいいえ。 Dropboxデーモンなどのサービスとは異なり、Stowは継続的に実行されていないためです。しかし、stow local2番目に実行すると、目的のシンボリックリンクが生成されます。

関連情報