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
리눅스의 경우:
이렇게 하면 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