Linux 如何复制包含绝对符号链接的文件夹并保留其相对目标

Linux 如何复制包含绝对符号链接的文件夹并保留其相对目标,linux,shell,command-line,terminal,symlink,Linux,Shell,Command Line,Terminal,Symlink,假设我有一个文件夹:/usr/lib/x86_64-linux-gnu/wxcrafter,其中包含一些库文件及其相应的符号链接,例如: /usr/lib/x86_64-linux-gnu/wxcrafter/lib1.so.0->/usr/lib/x86_64-linux-gnu/wxcrafter/lib1.so.0.0 /usr/lib/x86_64-linux-gnu/wxcrafter/lib2.so.0->/usr/lib/x86_64-linux-gnu/wxcrafter/lib

假设我有一个文件夹:
/usr/lib/x86_64-linux-gnu/wxcrafter
,其中包含一些库文件及其相应的符号链接,例如:

/usr/lib/x86_64-linux-gnu/wxcrafter/lib1.so.0->/usr/lib/x86_64-linux-gnu/wxcrafter/lib1.so.0.0

/usr/lib/x86_64-linux-gnu/wxcrafter/lib2.so.0->/usr/lib/x86_64-linux-gnu/wxcrafter/lib2.so.0.0

我想将
wxcrafter
复制到新位置
codeblocks
,保留符号链接目标的相对位置:

usr/lib/x86_64-linux-gnu/codeblocks/lib1.so.0->/usr/lib/x86_64-linux-gnu/codeblocks/lib1.so.0.0

/usr/lib/x86_64-linux-gnu/codeblocks/lib2.so.0->/usr/lib/x86_64-linux-gnu/codeblocks/lib2.so.0.0

鉴于可能存在大量此类符号链接,如何在命令行上执行此操作?

使用该程序将绝对符号链接转换为相对符号链接:

symlinks -c  wxcrafter
然后复制整个目录:

cp -a wxcrafter codeblocks
如果必须使用绝对符号链接(但为什么要使用?),请在运行
symlinks
之前复制原始目录,并在完成后将其还原


副本(
codeblocks
)将具有相对链接,如果需要绝对链接,则必须编写一个小脚本(使用
ln-fs$(pwd)/$(readlink$l)$l
将任何符号链接
$l
从相对转换为绝对),因为
symlinks
仅在一个方向上转换。不过,又何必麻烦呢?

谢谢你的问题更正。顺便说一句,如果没有,你应该在回复中写出来。