我创建了一个包含文件列表的符号链接文件夹。有没有办法将符号链接转换为使用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. 符号链接链接文件夹
- 2. Tomcat与子文件夹符号链接
- 3. 创建文件夹的符号链接
- 4. 符号链接到文件夹中的最新文件
- 5. htaccess的 - 创建文件夹的符号链接到HTML文件
- 6. 流浪+厨师符号链接公共文件夹到另一个文件夹
- 7. 链接整个文件夹
- 8. SVN链接文件夹
- 9. Eclipse,链接源文件夹
- 10. PHP - 从文件夹链接
- 11. 链接源文件夹
- 12. 生成文件,符号链接文件夹&相对路径
- 13. 上传文件的文件夹链接
- 14. 从文件夹取消链接文件
- 15. git的子文件夹到分支保存文件夹链接
- 16. 混帐:提交一个符号链接到一个文件夹
- 17. 如何将文件夹切换到svn中的符号链接
- 18. 创建链接到共享文件夹链接到MediaWiki
- 19. 链接到文件夹损坏
- 20. Opendoc链接到一个文件夹
- 21. 链接到上传文件夹
- 22. 相对链接到子文件夹?
- 23. 链接到SD卡中的文件夹
- 24. 超链接到webdav文件夹
- 25. 私人文件夹链接到用户
- 26. 链接,硬链接和符号链接:具有自定义文件的一个文件夹中的所有文件以及
- 27. 创建符号链接到路径中的所有文件/文件夹
- 28. 显示文件夹并建立这些文件夹的链接
- 29. NPM 5的安装文件夹,而不使用符号链接
- 30. PHP Windows,符号链接文件夹的rmdir
你为什么要这样做?硬链接很少是一个好主意。 –
您是否阅读过https://docs.oracle.com/javase/tutorial/essential/io/links.html? – 2016-12-05 07:43:50
@Eli sadoff要求就是这样。三个文件夹source-temp-destination。源到他们需要使用符号链接的温度。一旦最终修改完成。他们需要将临时文件夹中的文件移动到目标位置并删除临时文件夹。 –