我创建了一个包含文件列表的符号链接文件夹。有没有办法将符号链接转换为使用java的HardLink?隐藏符号链接文件夹到硬链接文件夹
1
A
回答
0
若要用java硬链接,你可以使用:
Path newLink = ...;
Path existingFile = ...;
try {
Files.createLink(newLink, existingFile);
} catch (IOException x) {
System.err.println(x);
} catch (UnsupportedOperationException x) {
// Some file systems do not
// support adding an existing
// file to a directory.
System.err.println(x);
}
所以,你的情况newLink
应该是你创建的oldSymbolicLink
和existingFile
表示其目标。
获取符号链接的目标,你可以使用
Files.readSymbolicLink(oldSymbolicLink));
+0
如果我们从符号链接文件夹创建硬链接,它将无法正常工作,对吧? –
0
的Java doc由别人指出说,在目录硬链接不能创建。所以,我不会告诉你如何创建目录的硬链接,而是要解释为什么你不能在目录上创建硬链接。
当您尝试遍历目录树时,硬链接在目录上会导致循环。
例如,如果你有一个目录/foo/bar
和符号链接/foo/bar/baz
指向../bar
,当您尝试遍历这棵树,你会遇到一个无限循环。现在
/foo/
/foo/bar
/foo/bar/baz
/foo/bar/baz/bar
/foo/bar/baz/bar/baz
...
,如果baz
是一个符号链接../bar
,它是简单的使用unlink(2)
系统调用(因为取消链接不跟随符号连接)断开链接baz
修复。但是,如果baz
是一个硬链接,那么这将是很多harder
(没有双关语意图)来解决这个问题。在“Unix环境下的高级编程”一书中,Stephen Rago指出Rich Stevens在尝试这个实验时损坏了他的文件系统(并且fsck
无法恢复)
相关问题
- 1. Tomcat与子文件夹符号链接
- 2. 创建文件夹的符号链接
- 3. 符号链接到文件夹中的最新文件
- 4. SVN链接文件夹
- 5. Eclipse,链接源文件夹
- 6. 链接源文件夹
- 7. 生成文件,符号链接文件夹&相对路径
- 8. git的子文件夹到分支保存文件夹链接
- 9. 如何将文件夹切换到svn中的符号链接
- 10. 创建链接到共享文件夹链接到MediaWiki
- 11. 私人文件夹链接到用户
- 12. 相对链接到子文件夹?
- 13. 超链接到webdav文件夹
- 14. 显示文件夹并建立这些文件夹的链接
- 15. Capistrano 3符号链接公共文件夹
- 16. 如何让svn忽略文件夹的符号链接
- 17. 当删除原始文件夹时删除符号链接
- 18. PHP符号链接():在可写文件夹中拒绝权限
- 19. PHP Windows,符号链接文件夹的rmdir
- 20. NPM 5的安装文件夹,而不使用符号链接
- 21. 符号链接作为包括在Visual Studio中的文件夹
- 22. 如何为不存在的文件夹创建符号链接?
- 23. 微软Azure符号链接存放文件夹Laravel
- 24. 删除包含符号链接的文件夹
- 25. 符号链接:找到链接到该文件
- 26. express.js中的文件夹无法链接
- 27. Sharepoint - 文件夹链接无法解析
- 28. 加载带有.html文件链接到/ assets文件夹的WebView
- 29. 火狐链接到本地Windows文件夹和文件
- 30. 重定向文件夹链接到xml文件
你为什么要这样做?硬链接很少是一个好主意。 –
您是否阅读过https://docs.oracle.com/javase/tutorial/essential/io/links.html? – 2016-12-05 07:43:50
@Eli sadoff要求就是这样。三个文件夹source-temp-destination。源到他们需要使用符号链接的温度。一旦最终修改完成。他们需要将临时文件夹中的文件移动到目标位置并删除临时文件夹。 –