微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 重命名文件有效,但软链接指向旧名称.我该如何解决这个问题?

例如,我正在重命名树中的许多文件,如下所示:

[bash]$for file in `find . -name "*gsf*"`; do `mv $file ${file/gsf/msf}`; done

这会将匹配gsf的文件名中的“gsf”的所有实例重命名为“msf”,但软链接继续指向包含“gsf”的现在不存在的文件.

例如,这是重命名后发生的情况:

lrwxrwxrwx 1 trusktr users     20 Apr 25 14:39 libmsf-1.so -> libgsf-1.so.114.0.23
lrwxrwxrwx 1 trusktr users     20 Apr 25 14:39 libmsf-1.so.114 -> libgsf-1.so.114.0.23
-rwxr-xr-x 1 trusktr users 265584 Apr 21 04:41 libmsf-1.so.114.0.23

如您所见,软链接指向libgsf-1.so.114.0.23,它不再存在,因为它已重命名libmsf-1.so.114.0.23.

我能做些什么,重命名也发生在软链接指针上?

解决方法:

没有;这就是使它们成为象征性链接的原因,你需要自己处理它们.硬链接引用文件系统中的实际索引节点(“inode”),因此将保持有效;这就是为什么在这种情况下你会使用硬链接而不是符号链接.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐