Windows에 익숙한 모든 사람은 symlink가 무엇이며 어떻게 사용되는지 상상할 수 있습니다. 반면에, 하드 링크 개념은 Windows와 관련이 없습니다 (정확합니까?).
Linux에서 하드 링크의 일반적인 용도가 무엇인지 알고 싶습니다. 나는 이미 그들이 작동하는 방식의 차이점을 설명하는 다른 게시물을 보았습니다. 내가 묻는 것은 사용자가 심볼릭 링크 대신 하드 링크를 사용하는 것이 더 나은 일반적인 상황은 무엇입니까?
Windows에 익숙한 모든 사람은 symlink가 무엇이며 어떻게 사용되는지 상상할 수 있습니다. 반면에, 하드 링크 개념은 Windows와 관련이 없습니다 (정확합니까?).
Linux에서 하드 링크의 일반적인 용도가 무엇인지 알고 싶습니다. 나는 이미 그들이 작동하는 방식의 차이점을 설명하는 다른 게시물을 보았습니다. 내가 묻는 것은 사용자가 심볼릭 링크 대신 하드 링크를 사용하는 것이 더 나은 일반적인 상황은 무엇입니까?
답변:
두 개 이상의 장소에 단일 파일이 필요한 하드 링크를 사용합니다. 언젠가는 위치 중 하나를 삭제하고 싶습니다. 파일에 대한 링크가 있다는 것을 잊을 수 있습니다. 이것은 더 이상 존재하지 않는 파일에 대한 심볼릭 링크로 끝나는 것을 막습니다.
설명:
실제로 파일 이름은 파일에 대한 하드 링크입니다. 따라서 모든 파일에는 하나 이상의 하드 링크가 있으며 일반적으로 "the"파일 이름으로 생각합니다. 파일을 삭제할 때 실제로는 하드 링크를 제거합니다 (따라서 이름이 "삭제"가 rm
아닌 "제거 "). 파일의 마지막 하드 링크가 제거되면 시스템도 파일을 삭제합니다.
하드 링크 허용
둘 이상의 이름을 가진 단일 실행 파일
예:
ls -l /bin | grep -v ' 1 ' | sort
/bin
당신 을 위해 그들을 나열합니다 . 결과 ...
-rwxr-xr-x 2 root root 63 2010-01-19 21:49 gunzip
-rwxr-xr-x 2 root root 63 2010-01-19 21:49 uncompress
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bunzip2
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bzcat
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bzip2
bunzip2 bzcat 및 bzip2 파일 대신 3 개의 파일이 동일한 파일을 사용하고 파일 내부에서 수행 할 작업을 구분합니다. 코드를 절약하고 코드를 줄이면 버그가 줄어들고 유지 관리가 쉬워집니다.
여러 경로로 액세스 할 단일 파일
예를 들어, 패키지 관리자는 패키지의 라이센스 정보와 함께 LICENSE라는 파일을 설치하고 해당 디렉토리 내에 각 패키지에 대해 / usr / share / doc / $ packagename 디렉토리를 작성합니다. 일반적인 Linux 시스템의 많은 패키지는 GPL 라이센스가 부여되어 있으므로 파일 시스템에 GPL 사본 200 개 대신 사본 하나와 링크 199 개만있을 수 있습니다. ptman @ 서버 오류
여기에서 하드 링크가 작동하는 이유 (및 소프트 링크가 작동하지 않는 이유) : 하드 링크 중 하나만 제거해도 파일 자체는 제거되지 않습니다.
mv
)은 사본 ( cp
) + 제거 ( rm
)입니다." 소스와 대상이 다른 마운트에있는 경우에만 해당됩니다. 그렇지 않으면 a mv
는 파일이 아닌 이름 만 이동합니다.
mv
있는 한 이름 만 변경합니다. inode는 동일하게 유지됩니다.