ハードリンクは実際にそれほど多くのディスク容量を占めていますか?

ハードリンクは実際にそれほど多くのディスク容量を占めていますか?

エイリアス/シンボリックリンクを表示できない特定のプログラム(Ableton Live)にはハードリンクを使用する必要があることがわかりました。もちろん、これはすべての作業ファイルを整理する方法です。ただし、ハードリンクを作成すると、元のファイルのコピーのように見えるコンテンツが作成されます。

実際にオリジナルと同じくらいのスペースを占めていますか?それとも、ファイルシステム(この場合はOSX)はディスク上の実際のデータのサイズのみを表示し、2つの場所で参照されるという事実は実際にはデータ量を2倍にしませんか?

答え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     .
$

最後のデモンストレーションは、ディスクサイズの半分を超える巨大なファイルを作成することでした。次に、どれだけのハードリンクを作成できるかを確認します。かなりたくさんあるはずです。

関連情報