У меня есть следующий скрипт zsh
, который символизирует все файлы в данном каталоге (кроме README.md
) в моем домашнем каталоге с ведущим .
перед каждым именем файла.zsh - Включить каталоги в glob loop
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.dotfiles/home/^README.md(.N); do
ln -fsv "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
Проблема заключается в том, что Glob, кажется, не включают в себя любые каталоги внутри "${ZDOTDIR:-$HOME}"/.dotfiles/home/
, только обычные файлы. Как включить каталоги в этом цикле (так, например, каталог /Users/user/.dotfiles/home/vim
символически связан с /Users/user/.vim
)? Я пробовал некоторые вещи с find
, но я предпочел бы придерживаться чистых zsh
скриптов, если это возможно.
Для справки, вот список этого каталога:
README.md
gitconfig
tmux.conf
vim
vimrc
zlogin
zprofile
zshenv
zshrc
А вот стоимость каждой итерации цикла:
/Users/user/.dotfiles/home/gitconfig
/Users/user/.dotfiles/home/tmux.conf
/Users/user/.dotfiles/home/vimrc
/Users/user/.dotfiles/home/zlogin
/Users/user/.dotfiles/home/zprofile
/Users/user/.dotfiles/home/zshenv
/Users/user/.dotfiles/home/zshrc
Так README.md
исключается, так как я предполагал, но vim
также исключается, но я хотел бы, чтобы он (и любые другие каталоги) был включен.
Я думаю, вы должны определить ZDOTDIR присвоив ему значение, как ZDOTDIR = ~/.dotfiles или аналогичный коснуться, в противном случае ЗШ установит $ HOME на него. Другая проблема: не забудьте сделать процедуру в zsh вместо bash. – SergioAraujo