如何递归编辑符号链接的路径?
这是从这一个开始的另一个问题 - 如何在OS X中编辑符号链接? 现在我知道如何编辑路径符号链接指向的路径,我正在试图弄清楚如何以递归方式执行任何损坏的符号链接。我是一个PHP家伙,所以这个CLI的东西对我来说有些陌生...... 似乎有一些具体要素,即: 识别损坏的符号链接并检索其位置 获取符号链接的旧的,现在不正确的目的地 构造要指向的符号链接的新正确路径 编辑符号链接 第一个很容易: find /path/to/search -type l | while read f; do if [ ! -e "$f" ]; then ls -l "$f"; fi; done 这给我一个很好的列表,列出了在提供的目录下找到的所有损坏的符号链接。但我相信我需要将每个位置存储在一个变量(数组?)中才能使用它。 接下来,似乎更改逻辑“then”部分中提供的操作将产生解决方案。 可以使用以下方法检索第2项: readlink /path/to/broken/symlink 所以我们似乎需要把它推到一个变量中。我不清楚终端如何做到这一点。 3号将是对步骤2中检索到的路径的简单编辑。我需要用新的替换旧的驱动器名称。如此改变: /Volumes/Old\ Drive/path/to/symlink 至 /Volumes/New\ Drive/path/to/symlink 还不清楚如何在CLI脚本中执行此操作。似乎需要某种字符串替换。像PHP世界中的str_replace。 最后,步骤4可通过以下方式完成: ln -f -s /path/to/new/location/of/original …