
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
操作を実行すると、統計のみが変更されたとマークb
されます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