![GNU Stow:如何仅存储选定的文件/文件夹?](https://linux22.com/image/52125/GNU%20Stow%EF%BC%9A%E5%A6%82%E4%BD%95%E4%BB%85%E5%AD%98%E5%82%A8%E9%80%89%E5%AE%9A%E7%9A%84%E6%96%87%E4%BB%B6%2F%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我们假设名为 的文件夹具有以下结构scripts
。
├── scripts
│ └── .scripts
│ ├── script1
│ ├── script2
│ └── script3
│ └── .config
│ ├── script4
│ ├── script5
│ └── script6
使用时stow scripts
,其中的两个文件夹scripts
将符号链接到~/.scripts
和~/.config
。
我可以使用 stow 仅符号链接.scripts
而不必.config
从文件夹中删除但基本上忽略它吗?
答案1
stow
有忽略列表它允许您将一个名为的文件.stow-local-ignore
放在源代码树的顶部。这样,您可以\.scripts
让 stow 忽略该目录,而不将其链接到目标树中。
答案2
我们来介绍一些斯托术语:
默认情况下斯托获取当前目录是你的存放目录,您在命令行中作为参数输入的名称存放包裹和父目录作为目标目录,所以当您输入:
$ stow scripts
没有任何选择你的存放目录是当前目录,scripts
是你的包裹并且当前目录的父目录成为存储目标目录包裹将在哪里出现要安装(将在其中创建符号链接)。
您可以明确告知存放目录和包裹您想在命令行中安装,如以下命令所示:
$ stow -d /path_to_scripts_folder/scripts -S .scripts
这里的herescripts
被定义为你的存放目录并.scripts
作为你的包裹在斯托术语。
您可以选择指定目标目录,即相对于文件(文件的符号链接)应放置的位置的目录:
$ stow -d /path/scripts -S .scripts -t ~/
要测试任何此选项,您可以使用-n
仅模拟更改而不修改文件系统的标志:
$ stow -n -d /path/scripts -S .scripts -t ~/
如果您想查看应采取的所有操作,您可以添加 -v 指定从 0(无-v
标志)到 3( -vvv
) 的详细级别:
$ stow -n -d /path/scripts -S .scripts -t ~/ -vvv
随着此选项变得越来越复杂,最好编写一些 shell 脚本来自动化您的工作并为您提供最大的灵活性。