首页 > 解决方案 > 如何批量附加子目录到bash中的链接目标

问题描述

我有一个目录在我的控制之下,其中有很多符号链接指向另一个不受我控制的目录中的子目录。“格式”最近发生了变化,我想更新我所有的符号链接以将“新”附加到链接目标。

当前情况的示例:

  • u -> /目录/uvw
  • v -> /目录/uvw
  • x -> /目录/xyz
  • y -> /目录/xyz
  • ...

如何将子目录批量附加到每个链接目标,以便新链接具有以下目标?

  • u -> /目录/uvw/新
  • v -> /目录/uvw/新
  • x -> /目录/xyz/新
  • y -> /目录/xyz/新
  • ...

标签: bashsymlinkbatch-rename

解决方案


请尝试以下方法:

find . -type l -maxdepth 1 -print0 | while IFS= read -r -d "" link; do
    target="$(readlink "$link")"
    ln -nfs "$target/new" "$link"
done

希望这可以帮助。


推荐阅读