Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash中将子目录批量附加到链接目标_Bash_Symlink_Batch Rename - Fatal编程技术网

如何在bash中将子目录批量附加到链接目标

如何在bash中将子目录批量附加到链接目标,bash,symlink,batch-rename,Bash,Symlink,Batch Rename,我有一个目录在我的控制下,有很多符号链接到另一个不在我控制下的目录中的子目录。“格式”最近发生了变化,我想更新我的所有符号链接,将“新”添加到链接目标 当前情况的例子: u->/目录/uvw v->/catalog/uvw x->/catalog/xyz y->/catalog/xyz 如何向每个链接目标批量附加一个子目录,以便新链接具有以下目标 u->/目录/uvw/新 v->/目录/uvw/新 x->/catalog/xyz/new y->/catalog/xyz/new 请尝试

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

当前情况的例子:

  • u->/目录/uvw
  • v->/catalog/uvw
  • x->/catalog/xyz
  • y->/catalog/xyz
如何向每个链接目标批量附加一个子目录,以便新链接具有以下目标

  • u->/目录/uvw/新
  • v->/目录/uvw/新
  • 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
希望这有帮助