하드 링크가 실제로 그렇게 많은 디스크 공간을 차지합니까?

하드 링크가 실제로 그렇게 많은 디스크 공간을 차지합니까?

별칭/심볼릭 링크를 볼 수 없는 특정 프로그램(Ableton Live)에 대해 하드 링크를 사용해야 한다는 것을 알았습니다. 물론 이것이 모든 작업 파일을 구성하는 방법입니다. 그러나 하드 링크를 생성하면 원본 파일의 복사본처럼 보이는 콘텐츠가 생성됩니다.

실제로 원본만큼 많은 공간을 차지합니까? 아니면 파일 시스템(이 경우 OSX)은 디스크에 있는 실제 데이터의 크기만 표시하고 두 위치에서 참조된다는 사실이 실제로 데이터 양을 두 배로 늘리지 않는 걸까요?

답변1

두 번째로 말씀하신 것은 전적으로 맞습니다. 파일 내용은 디스크에 한 번만 존재합니다. 하드 링크는 매우 적은 공간(파일 이름 길이에 몇 바이트를 더한 디렉토리 항목의 크기)을 차지하는 추가 참조입니다.

이것이 OSX에서 작동하는지 모르겠지만 내 편리한 GNU coreutils 버전에서는 du하드 링크에 대해 알고 있으므로 이를 사용하여 파일 세트의 전체 크기에 대한 정확한 보고서를 얻을 수 있습니다. 파일에 대한 링크가 여러 개 발견되면 전체 링크에 한 번만 추가됩니다. ls -l반면에 잘못된 작업을 수행하여 디렉터리에 표시된 모든 것을 해당 total행에 추가합니다.

$ ls -sl
total 296
296 -rw-r--r-- 1 user group 300324 Feb 17 19:08 f1
$ du
296     .
$ ln f1 f2
$ ls -sl
total 592
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f1
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f2
$ du
296     .
$ cp f1 f3
$ ls -sl
total 888
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f1
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f2
296 -rw-r--r-- 1 user group 300324 Feb 17 19:08 f3
$ du
592     .
$

마지막 시연은 디스크 크기의 절반이 넘는 거대한 파일을 생성하는 것이었습니다. 그런 다음 얼마나 많은 하드 링크를 만들 수 있는지 확인하십시오. 꽤 많이 있어야합니다.

관련 정보