Bash:如何从for循环中的多个文件的数组中删除目录的第一部分?

从字面上看

我正在尝试编写一个脚本来为我管理点文件,这就是我所拥有的:

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/零件和包含~/零件的文件的那一部分时,我将如何处理

编辑:在符号链接行中替换echoln -sv我用替换了它,echo以便可以测试它是否有效。

约翰·布林格

我的问题是,在删除〜/ .config /部分和包含文件的〜/部分的地方,我将如何处理?

就个人而言,我将分两步进行操作,将中间结果存储在单独的变量中:

        local_part=${name#~/}
        ln -sv "$HOME/Dotfiles/dots/${local_part#.config/}" "$name"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何删除for循环的第一部分?

如何删除哈希文件中文件路径的第一部分?

读取文件时如何删除行的第一部分?

如何删除B中字符串的第一部分

如何在 Swift 中僅讀取文件的第一部分?

删除路径的第一部分?

删除网址的第一部分

如何正确完成本基本循环练习的第一部分?

红宝石,如何删除字符串的第一部分?

如何删除字符串的第一部分?

书签删除URL的第一部分中的文本

如何使用熊猫删除列值中的URL字符串的第一部分?

.ini文件中的第一部分标题由Inno Setup复制

您如何在Angular 5中获得URI的第一部分?

如何基于R中列名的第一部分收集列?

如何只处理 Python 中字典值列表的第一部分?

Python:如何使2个相等的零件列表仅在for循环中使用每个零件的第一部分?

如何将文件名第一部分的名称从源目录移动到目标目录?

删除文本文件每一行的第一部分

给每行的第一部分上色

列名第一部分的子集

隐藏第一部分

第一部分的 Youtube 背景

如何在MySQL中删除字符串的第一部分,包括第一个逗号?

重写规则,但忽略目录的第一部分?

如何证明弗洛伊德循环检测算法的第一部分?

css,javascript:带有数组的随机图像加载器删除了我的变量的第一部分如何解决这个问题?

删除熊猫数组中列表的第一部分而不发出警告“试图在切片的副本上设置”

删除熊猫数组中列表的第一部分而不发出警告“试图在切片的副本上设置”