jof*_*fel 3 backup cp symlink file-copy
是否有一种简单的方法可以递归复制目录,其中解析到外部文件/目录的符号链接(复制目标文件),但保留内部符号链接(指向复制的树中的文件)?
例子:
touch outsidefile
mkdir src
ln -s ../outsidefile src/sym1
touch src/insidefile
ln -s insidefile src/sym2
cp [???] src dest # or other command
Run Code Online (Sandbox Code Playgroud)
想要的结果:
$ ls dest
insidefile
sym1
sym2 -> insidefile
Run Code Online (Sandbox Code Playgroud)
即sym1
是一个常规文件,sym2
保持是一个符号链接。
rsync -a --copy-unsafe-links src/ dest
Run Code Online (Sandbox Code Playgroud)
从man
页面:
--copy-unsafe-links
这告诉 rsync 复制指向复制树之外的符号链接的所指对象。绝对符号链接也被视为普通文件,
--relative
使用时源路径本身中的任何符号链接也是如此。如果--copy-links
还指定了此选项,则没有其他效果。[...]
--links --copy-unsafe-links 将所有不安全的符号链接转换为文件并复制所有安全的符号链接。