GNU Stow:如何仅存放选定的文件/文件夹?

ors*_*iro 8 stow

让我们假设一个名为scripts.

??? scripts
?   ??? .scripts
?       ??? script1
?       ??? script2
?       ??? script3
?   ??? .config
?       ??? script4
?       ??? script5
?       ??? script6
Run Code Online (Sandbox Code Playgroud)

使用时stow scripts,其中的两个文件夹都scripts将符号链接到~/.scripts~/.config

我可以使用 stow 仅符号链接.scripts而不必.config从文件夹中删除但基本上忽略它吗?

cam*_*amh 13

stow忽略列表,可让您将调用的文件放在.stow-local-ignore源代码树的顶部。在那种情况下,您可以让\.scriptsstow 忽略该目录,而不是将其链接到目标树中。


Ale*_*ira 6

让我们介绍一些斯托术语

默认情况下,Stow将当前目录视为您的stow 目录,您在命令行中作为参数键入的名称作为stow 包,将父目录作为目标目录,因此当您键入:

$ stow scripts
Run Code Online (Sandbox Code Playgroud)

如果没有任何选项,您的stow 目录就是当前目录,scripts是您的,当前目录的父目录将成为安装包的 stow目标目录将在其中创建符号链接)。

您可以在命令行中显式告知存储目录和要安装的包,如以下命令所示:

$ stow -d /path_to_scripts_folder/scripts -S .scripts
Run Code Online (Sandbox Code Playgroud)

其中,scriptshere 被定义为您的stow 目录,并且在Stow 术语.scripts中被定义为您的

您可以选择指定目标目录,即相对于文件(文件的符号链接)应放置的位置的目录:

$ stow -d /path/scripts -S .scripts -t ~/
Run Code Online (Sandbox Code Playgroud)

要测试任何此选项,您可以使用-n仅模拟更改而不修改文件系统的标志:

$ stow -n -d /path/scripts -S .scripts -t ~/
Run Code Online (Sandbox Code Playgroud)

如果您想查看应采取的所有操作,您可以添加 -v 指定从 0(无-v标志)到 3( -vvv) 的详细级别:

$ stow -n -d /path/scripts -S .scripts -t ~/ -vvv 
Run Code Online (Sandbox Code Playgroud)

随着此选项变得越来越复杂,最好编写一些 shell 脚本来自动化您的工作并为您提供最大的灵活性。