link () 함수의 기본 구문은 다음과 같습니다.
<code> 링크 (String $ target, String $ Link) </code>
$ 대상 은 기존 대상 파일 경로입니다
$ 링크는 생성 할 하드 링크 경로입니다
예:
<code> <? php $ target = "gitbox.net/files/original.txt"; $ link = "gitbox.net/files/hardlink.txt"; if (link ($ target, $ link)) {
Echo "하드 링크가 성공적으로 만들어졌습니다!";
} 또 다른 {
Echo "하드 링크 생성 실패";
}
?>
</코드>
하드 링크는 본질적으로 동일한 파일 데이터를 가리키는 여러 디렉토리 항목입니다.
권한 공유 <br> 하드 링크와 원본 파일은 동일한 파일 내용 및 메타 데이터를 가리키는 것과 동일한 권한 설정을 공유합니다. 이는 파일에 액세스하는 경로에 관계없이 권한이 동일하다는 것을 의미합니다.
권한 수정의 영향 <br> 하드 링크 또는 원본 파일을 허가 수정하면 실제로 파일 자체의 권한을 수정하고 모든 링크가 영향을받습니다.
파일 삭제의 영향 <br> 하드 링크 중 하나를 삭제하고 디렉토리 항목을 삭제하면 다른 하드 링크가있는 한 파일 데이터가 여전히 존재합니다.
gitbox.net/files/original.txt 파일이 0644 라고 가정합니다 (소유자는 읽고 쓸 수 있고 다른 사용자가 읽을 수 있음).
<code> <? php $ target = "gitbox.net/files/original.txt"; $ link = "gitbox.net/files/hardlink.txt"; // 하드 링크를 만듭니다
if (link ($ target, $ link)) {
Echo "하드 링크가 성공적으로 만들어졌습니다. \ n";
}
// 권한을 봅니다
echo sprintf ( "권한 : %o \ n", 파일 ($ target) & 0777);
// 권한을 수정합니다
CHMOD ($ link, 0666);
Echo "하드 링크 권한을 수정 한 후 : \ n";
echo sprintf ( "원본 파일 권한 : %o \ n", FilePerms ($ target) & 0777);
echo sprintf ( "하드 링크 권한 : %o \ n", FilePerms ($ link) & 0777);
?>
</코드>
실행 결과는 하드 링크의 권한을 수정 한 후 원래 파일 권한이 동일한 파일과의 다른 경로이기 때문에 수정되었음을 보여줍니다.
하드 링크는 동일한 파일 시스템 내에서만 생성 될 수 있으며 교차 파티션 또는 크로스 마운트 포인트가 될 수 없습니다.
디렉토리 파일은 일반적으로 하드 링크 (Linux 제한)를 허용하지 않으며 일반 파일에서만 사용할 수 있습니다.
소프트 링크 (Symlinks)는 하드 링크와 다르며 소프트 링크 권한 및 대상 파일 권한은 관련이 없습니다.
PHP의 link () 함수는 하드 링크를 생성하고 여러 링크가 동일한 파일 권한을 공유합니다.
하드 링크 또는 원본 파일의 권한을 수정하면 파일에 대한 모든 링크에 영향을 미칩니다.
하드 링크는 데이터 일관성을 위해 다중 경로 액세스가 필요한 시나리오에 적합합니다.
PHP의 링크 () 함수와 파일 권한 사이의 상호 작용 메커니즘을 이해함으로써 파일 시스템을 더 잘 관리하고 허가 혼란과 오해를 피할 수 있습니다.