답변:
하드 링크는 기본적으로 동일한 파일의 두 번째 파일 이름입니다. 따라서 파일을 하드 링크로 연결하면 파일 시스템에 파일이 한 번만 저장되므로 공간을 한 번만 차지합니다. 디스크 공간을 절약하려면이 옵션을 사용하십시오
유닉스 파일 시스템에서 모든 파일 이름은 실제로 디스크의 데이터 위치 (아이 노드)에 대한 하드 링크입니다. 기존 파일에 대한 새 하드 링크를 만들면 동일한 데이터를 가리키는 또 다른 포인터이므로 디스크에 추가 공간이 필요하지 않습니다. 하나 또는 다른 링크로 데이터를 편집하거나 inode를 직접 편집하면 두 파일이 모두 변경됩니다.
시스템은 각 inode의 하드 링크 수를 계산합니다. 링크 카운트가 0이면 파일에 더 이상 도달 할 수 없으며 데이터를 덮어 쓸 수있는 것으로 표시됩니다. 따라서 두 개의 하드 링크가있는 파일이 주어지면 두 링크 중 하나를 삭제하면 데이터가 삭제되지 않습니다. 둘 다 삭제하면 데이터가 사라집니다.
-i
스위치를 사용하여 파일의 inode 수를 볼 수 있습니다 .ls
명령으로 .
반면에 소프트 링크는 파일 이름으로 다른 파일을 가리 킵니다. 원본 파일을 이동하거나 삭제하면 링크가 끊어집니다.
"왜 하드 링크를 사용하고 싶습니까?"라는 질문의 일부를 참조하십시오.
하드 링크 된 파일 (또는 그 문제에 대한 소프트 (기호) 링크 된 파일은 다른 목적으로 가장 할 수있는 단일 실행 파일을 갖는 유용한 방법을 제공합니다.
즉, 코드가 호출되는 이름 을 검사하여 실행할 수있는 옵션을 판별 할 수 있습니다. 이를 통해 약간 다른 목적에 필요한 모든 공유 기능을 갖춘 하나의 큰 코드 조각을 개발하고 패키징 할 수 있습니다. 사용자의 관점에서 볼 때 "이름"에 따라 "무엇을"실행할 것인지는 선택과 표현을보다 관리하기 쉬운 옵션의 하위 집합으로 제한합니다.
전형적인 예는 LVM입니다. 한 번에 HP-UX는 다양한 실행 파일에 대한 하드 링크 된 파일을 (사용 예 vgdisplay
, vgcreate
, vgextend
, 등 오늘, 리눅스처럼,이 명령은 실제로 심볼릭 (소프트) 링크입니다 lvm
실행.