Answers:
此命令应该起作用:
find -type l -exec bash -c 'ln -f "$(readlink -m "$0")" "$0"' {} \;
怎么运行的:
find -type l 查找当前目录中的所有链接。
-exec bash -c '...' {} \;调用bash执行...。
它通过{}-当前正在处理的链接的名称-作为参数,bash可以将其作为访问$0。
readlink -m "$0" 返回符号链接目标的绝对路径。
ln -f "$(readlink -m "$0")" "$0"用指向目标的硬链接覆盖(-f)符号链接$0。
如果由于某种原因无法转换链接,则该链接将保持不变,并且ln将显示错误消息。
bash和的绝对路径是否足够ln?
-e开关可以解决该问题。
brew install coreutils和find * -type l -exec bash -c 'ln -f "$(greadlink -m "$0")" "$0"' {} \;。
cp -aH)。[1]:unix.stackexchange.com/questions/94185/...