我有一台 AIX 7.2 机器。我正在尝试在其上运行 Java 程序。它给了我这个错误:NOFOLLOW_LINKS is not supported on this platform
。这是因为我在程序中使用了这个调用:
Files.setAttribute(path, "unix:uid", entityMd.getUid(), LinkOption.NOFOLLOW_LINKS);
文件来自 nio 库:
import java.nio.file.Files;
import java.nio.file.LinkOption;
那么,这不是设计好的吗?我尝试在 aix 和 linux 机器中尝试并创建符号链接,如下所示:
ln -s a b
在 Linux 上:
当我这样做时stat b
,它给了我这个输出:
File: ‘b’ -> ‘a’
Size: 1 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 10880702 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ankitshubham) Gid: ( 1000/ankitshubham)
Access: 2019-03-05 17:38:38.812875999 +0530
Modify: 2019-03-05 17:38:35.820875999 +0530
Change: 2019-03-05 17:38:35.820875999 +0530
Birth: -
touch
在对a
或执行 a 操作时b
,显示只有 stat 发生了a
变化。
在 AIX 上
当我这样做时istat b
,它给了我这个输出:
Inode 82949 on device 10/8 File
Protection: rw-r--r--
Owner: 0(root) Group: 0(system)
Link count: 1 Length 0 bytes
Last updated: Tue Mar 5 04:31:57 CST 2019
Last modified: Tue Mar 5 04:31:57 CST 2019
Last accessed: Tue Mar 5 04:31:57 CST 2019
请注意,它显示File
为 type 而不是类似 的内容Symlink
。
此外,对或touch
中的任何一个执行 a 时,它显示和的统计数据都发生了变化。这让我想到,也许AIX中没有像NOFOLLOW_LINKS这样的设计,并且在AIX上不支持NOFOLLOW_LINKS并不是JAVA的缺点。我对么?a
b
a
b