如何将子目录批量附加到 bash 中的 link 目标

How to batch append subdirectory to link target in bash

我有一个目录在我的控制之下,其中有很多符号 links 到另一个不在我控制的目录中的子目录。 "format" 最近发生了变化,我想更新我所有的符号 link 以将 "new" 附加到 link 目标。

当前情况示例:

  • u -> /catalog/uvw
  • v -> /catalog/uvw
  • x -> /catalog/xyz
  • y -> /catalog/xyz
  • ...

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

  • u -> /catalog/uvw/new
  • v -> /catalog/uvw/new
  • x -> /catalog/xyz/new
  • y -> /catalog/xyz/new
  • ...

请尝试以下操作:

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

希望对您有所帮助。