为什么 GNU Stow 不忽略主目录中的单个文件?
Why doesn't GNU Stow ignore single files in main directory?
我已经在我的点文件文件夹中添加了一个自述文件,因为我正在使用 stow
管理每个包,所以我想忽略它。从文档中我读到默认情况下 stow 使用包含 README 文件的预设列表。现在,这似乎不起作用。我也试过添加 .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)?有什么解决方法吗?
写一个shell脚本,如
#! /usr/bin/env sh
stow -nv i3 i3status nvim rofi stow urxvt zsh
而不是做
stow -nv *
?
我认为问题在于 stow *
中的 *
匹配所有文件,包括 README.md
?
或者,如果更喜欢 deny-listing,我猜你可以使用 fd
或 find
的 exclude
功能,并将其传递给 --exec.
类似于:
fd --exclude README.md -d 1 --exec stow -nv
...-d 1
只包含直接子目录。
我刚遇到同样的问题,我发现将尾部斜杠添加到通配符 */
意味着 glob 只会查找目录,而忽略 'root' 中的所有文件(dotfiles 文件夹在我的情况)的装载。这会忽略我的文件,例如 readme.md
和 license.txt
,这正是我想要的。
我的 stow 命令变为(运行 来自我的 dotfiles repo 目录)
stow -t ~ */
我认为 stow 尝试将文件存放在根目录下是无效的,我认为它们需要始终嵌套在文件夹中,所以这可能应该是默认设置,但我有点那里含糊不清。如果曾经有从存储根存储文件的用例,则此解决方案将不起作用。
归功于 this post 这让我开始思考。
我已经在我的点文件文件夹中添加了一个自述文件,因为我正在使用 stow
管理每个包,所以我想忽略它。从文档中我读到默认情况下 stow 使用包含 README 文件的预设列表。现在,这似乎不起作用。我也试过添加 .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)?有什么解决方法吗?
写一个shell脚本,如
#! /usr/bin/env sh
stow -nv i3 i3status nvim rofi stow urxvt zsh
而不是做
stow -nv *
?
我认为问题在于 stow *
中的 *
匹配所有文件,包括 README.md
?
或者,如果更喜欢 deny-listing,我猜你可以使用 fd
或 find
的 exclude
功能,并将其传递给 --exec.
类似于:
fd --exclude README.md -d 1 --exec stow -nv
...-d 1
只包含直接子目录。
我刚遇到同样的问题,我发现将尾部斜杠添加到通配符 */
意味着 glob 只会查找目录,而忽略 'root' 中的所有文件(dotfiles 文件夹在我的情况)的装载。这会忽略我的文件,例如 readme.md
和 license.txt
,这正是我想要的。
我的 stow 命令变为(运行 来自我的 dotfiles repo 目录)
stow -t ~ */
我认为 stow 尝试将文件存放在根目录下是无效的,我认为它们需要始终嵌套在文件夹中,所以这可能应该是默认设置,但我有点那里含糊不清。如果曾经有从存储根存储文件的用例,则此解决方案将不起作用。
归功于 this post 这让我开始思考。