我已经添加了一个自述文件到我的dotfile文件夹,因为我用stow
管理每个包,我想忽略它。从文档中我读到,默认情况下,stow使用一个包含自述文件的预设列表。现在,这似乎不起作用。我也尝试添加一个.stow-global-ignore
,但同样的错误。甚至用stow -nv --ignore='README.md' *
强制也没有结果。
$ tree
.
├── i3
├── i3status
├── nvim
├── README.md
├── rofi
├── stow
├── urxvt
└── zsh
$ stow -nv *
LINK: .config/i3/config => ../../.dotfiles/i3/.config/i3/config
LINK: .config/i3status/config => ../../.dotfiles/i3status/.config/i3status/config
LINK: .config/nvim/init.vim => ../../.dotfiles/nvim/.config/nvim/init.vim
stow: ERROR: The stow directory .dotfiles does not contain package README.md
我的猜测是忽略列表只应用于stow目录中的包(因此是dirs)?有什么解决办法吗?
2条答案
按热度按时间uklbhaso1#
我刚刚遇到了同样的问题,我发现在通配符
*/
后面加上斜杠意味着glob只会查找目录,忽略stow的“根”(在我的例子中是dotfiles文件夹)中的所有文件。这忽略了我想要的readme.md
和license.txt
等文件。我的stow命令变为(从我的dotfiles repo目录中运行)
我不认为stow在根目录下存放文件是有效的,我认为它们需要总是嵌套在一个文件夹中,所以可能这应该是默认的,但是我在这方面有点含糊。如果有从stow根目录存放文件的用例,这个解决方案将不起作用。
这要归功于this post,它让我思考。
ktecyv1j2#
编写如下shell脚本
而不是
?
我认为,问题在于
stow *
中的*
匹配包括README.md
在内的所有文件?或者,如果更喜欢拒绝列表,我想您可以使用
fd
或find
的exclude
特性,并将其传递给--exec。比如:
......
-d 1
只包含直接子目录。