You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VirtualBox共享目录软链接临时移除及find输出格式化求助

解决VirtualBox共享目录循环软链接的恢复脚本生成问题

方法一:用find的-printf直接生成可执行恢复脚本

直接通过find的格式化输出参数,一步生成正确的ln -s命令,无需处理换行:

find ~/_D -type l -printf 'ln -s "%l" "%p"\n' > restore_symlinks.sh

参数说明:

  • -type l:仅匹配软链接文件
  • %l:输出软链接指向的目标路径
  • %p:输出当前软链接的完整路径
  • 双引号包裹路径,避免含空格、特殊字符的路径出错
  • \n:每条恢复命令单独成行,生成的脚本可直接执行

方法二:修复已有错误格式的输出文件

如果已经生成了交替换行的软链接路径和目标路径文件(比如temp_links.txt),用sed合并行后生成正确命令:

sed 'N;s/\n/ /' temp_links.txt | awk '{print "ln -s \""$2"\" \""$1"\""}' > restore_symlinks.sh

解释:

  • sed 'N;s/\n/ /':将相邻两行合并为一行,用空格分隔路径
  • awk:拆分合并后的行,拼接成标准的ln -s命令格式

方法三:用-print0处理含特殊字符的路径

如果路径中包含换行符等极端特殊字符,用空字符分隔避免解析错误:

find ~/_D -type l -print0 | xargs -0 -I {} sh -c 'echo "ln -s \"$(readlink {})\" \"{}\""' > restore_symlinks.sh

参数说明:

  • -print0:让find用空字符分隔结果,规避特殊字符干扰
  • xargs -0:对应空字符分隔的输入方式,确保路径完整

现成工具替代方案

用rsync直接备份/恢复软链接结构,无需手动编写脚本:

  1. 备份软链接:
rsync -av --include='*/' --include='*.lnk' --exclude='*' ~/_D/ symlinks_backup/
  1. 恢复软链接:
rsync -av symlinks_backup/ ~/_D/

rsync会自动识别并重建软链接,无需额外处理格式问题

内容的提问来源于stack exchange,提问作者Tsepati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:05:20