gpt4 book ai didi

java - 符号链接(symbolic link)的修改

转载 作者:行者123 更新时间:2023-12-01 13:11:24 26 4
gpt4 key购买 nike

当使用Java的单个文件存在多个符号链接(symbolic link)时,如何识别哪个链接修改了目标文件?我无法找到哪个文件修改了目标文件。

示例:D:\sample.txt,D:\folder1\sample.txt ;这两个是链接。目标文件位于E:\sample.txt .

现在如何判断是否D:\sample.txtD:\folder1\sample.txt修改了E:\sample.txt

最佳答案

How to identify which link modified the target file when multiple symbolic link exists for a single file using java?

这是不可能的。

这在任何编程语言中都是不可能的。

此功能必须得到操作系统的支持,而我遇到过的操作系统均不支持。

<小时/>

有些启发式方法(使用时间戳)可能“在大多数情况下”都有效,但在每种情况下,启发式方法都不会给出答案,甚至会给出错误的答案。以下是一些令人困惑的问题:

使用简单的时间戳启发式:

  • 如果任一符号链接(symbolic link)位于只读文件系统或未记录访问时间的文件系统(例如,取决于挂载选项),则不会,并且

  • 如果在上次文件写入后在符号链接(symbolic link)上发生文件读取,则它将不起作用。

当您添加观察者时:

  • 如果您当时没有“观看”(废话!),它就不会起作用,并且

  • 如果您有太多观察者事件,并且您无法跟上,它将不起作用。

(此外,我认为您无法获取有关使用符号链接(symbolic link)的事件。因此您仍然需要检查符号链接(symbolic link)访问时间戳。这意味着只读文件系统等在这里是一个问题也是。)

还有这样的场景:

  • 两个符号链接(symbolic link)都用于写入文件,
  • 您不了解所有符号链接(symbolic link),或者
  • 用于写入的符号链接(symbolic link)已被删除或“触及”。

这些可能超出了 OP 用例的范围。但它们与OP第一句提出的一般问题相关。

关于java - 符号链接(symbolic link)的修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com