我正在尝试编写一个脚本来为我管理点文件,这就是我所拥有的:
dots=(
~/.config/alacritty
~/.config/dunst
~/.config/flameshot
~/.config/i3
~/.config/i3status
~/.config/kitty
~/.config/nvim
~/.config/picom
~/.config/rofi
~/.config/gtk-3.0
~/.config/obs-studio
~/.config/sway
~/.config/waybar
~/.config/swappy
~/.config/mako
~/.config/swaylock
~/.config/Code/User/settings.json
~/.config/Code/User/keybindings.json
~/.config/fontconfig
~/.bash_logout
~/.bash_profile
~/.bashrc
~/.profile
~/.stignore
~/.gtkrc-2.0
)
for name in "${dots[@]}"; do
if [ ! -e "$name" ]; then
echo "$name does not exist."
ln -sv "$HOME/Dotfiles/dots/${name#~/.config/}" "$name"
else
echo "$name exists."
fi
done
这里的问题是它~/.config/
从目录中删除了该部分~/.config/sway
,但没有为目录删除该~/
部分~/.profile
。
我的问题是,在删除~/.config/
零件和包含~/
零件的文件的那一部分时,我将如何处理?
编辑:在符号链接行中替换echo
为ln -sv
。我用替换了它,echo
以便可以测试它是否有效。
我的问题是,在删除〜/ .config /部分和包含文件的〜/部分的地方,我将如何处理?
就个人而言,我将分两步进行操作,将中间结果存储在单独的变量中:
local_part=${name#~/}
ln -sv "$HOME/Dotfiles/dots/${local_part#.config/}" "$name"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句