【发布时间】:2021-05-07 05:17:49
【问题描述】:
我正在尝试为我编写一个管理点文件的脚本,这就是我所拥有的:
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/sway 等目录中删除~/.config/ 部分,但不会删除~/.profile 等目录中的~/ 部分。
我的问题是,我将如何在删除 ~/.config/ 部分和 ~/ 部分的文件中删除它们?
编辑:在符号链接行中将 echo 替换为 ln -sv。我将其替换为echo,以便测试它是否有效。
【问题讨论】:
标签: arrays bash shell scripting symlink