例如,我将符号链接放入~/.local/bin/
其中,指向~/Dotfiles.d/local/.local/bin/
.
我使用以下说明来执行此操作:
$ cd ~/Dotfiles.d/
$ stow -v local
因此stow
将为本地(包含 .local/bin/*)中的所有文件创建链接~/.local/bin/*
但是当我需要将新文件添加到 bin 目录中时,无论我添加文件~/.local/bin/
还是~/Dotfiles.d/local/.local/bin/
,stow
都无法在这两个目录之间同步文件。
我想要的是:
- 如果直接添加新文件
~/.local/bin/
,实际上会自动添加新文件~/Dotfiles.d/local/.local/bin
,并自动创建符号链接~/.local/bin/
。 - 如果我添加新文件到
~/Dotfiles.d/local/.local/bin/
,它会自动创建该文件的符号链接到~/.local/bin/
。
能stow
做到吗?
答案1
GNU Stow 没有实现双向或连续同步,也从未打算这样做。它的主要工作是管理目标目录中的符号链接,这些符号链接指向 Stow 目录下的 Stow 包树中的文件和目录。 (看手册的术语部分了解这些术语的精确定义。)
所以你的两个请求的答案是:
- 不,这在设计上是不可能的,因为 Stow 无法知道您是否希望将新文件放置在
local
Stow 目录 ( ) 下的包中或其他包中~/Dotfiles.d
。话虽如此,如果新文件也被添加到包树下的相应路径中local
,那么该--adopt
选项可以将其从普通文件变成~/.local/bin/
符号链接。 - 如果您所说的“自动”是指无需用户干预,那么就不会,因为与 Dropbox 守护程序等服务不同,Stow 不会连续运行。但是,如果您
stow local
第二次运行,那么它会创建您想要的符号链接。