web-dev-qa-db-ja.com

シンボリックリンクとハードリンクのファイルサイズの違いは何ですか?

すべての映画を1つの巨大なフォルダーに保存してから、そのジャンルの他のフォルダーを作成し、そのジャンルフォルダー内のすべての映画へのリンクを作成する予定です。このようにして、不必要にコピーすることなく、映画を複数のジャンルに整理することができます。

リンクを壊さずにファイルを移動できる、より堅牢なシステムを作成するために、この取り組みでハードリンクを使用することを計画しています。ただし、ハードリンクはシンボリックリンクよりも多くのストレージスペースを使用し、マシンを肥大化させるのではないかと思います。これをテストするためにファイルへのソフトリンクとハードリンクを作成しましたが、Thunarの設定でファイルサイズを見ると、どちらも元のファイルサイズを示しています。

どのファイルがより多くのハードドライブスペース、シンボリックリンク、またはハードリンクを必要としますか?

半無関係な補足として、xbmc/Kodiはビデオへのリンクを実際のビデオとして認識しますか?

5
Max Hanson

シンボリックリンクファイルはより多くのスペースを取ります。ハードリンクされたファイルは同じinodeを共有します。ただし、シンボリックファイルは元のファイル(location)に対してpointerです。

それにもかかわらず、ハードリンクには2つの注意点があります。

  • すべてのファイルシステムがハードリンクをサポートしているわけではありません。
  • フォルダにハードリンクを適用することはできません。

ほとんどの場合、ストレージの問題は些細なことなので、ストレージの問題について考慮する必要はないと思います。さらに、ジャンルを仮想的に整理するのに役立つツールがあるかもしれません(それらは仮想ファイルシステムを利用するかもしれません)。

3
Hongxu Chen

違いはごくわずかであり、無関係です。ハードリンクまたはシンボリックリンクの作成には、数バイトしかかかりません。ハードリンクには、名前とiノード番号をディレクトリに格納するためのスペースという1つのディレクトリエントリが必要です。シンボリックリンクには、1つのディレクトリエントリと、シンボリックリンクに関するメタデータを格納するためのスペースも必要です。ファイルシステムに応じて、この情報はディレクトリエントリに保存されるか、別のiノードが必要になります。シンボリックリンクは、100程度程度の数バイトを使用しますが、これはごくわずかです。保存しているファイルの1/1000未満です。

ファイルが非常に小さく、ターゲットごとにファイルとリンクが多すぎて、ターゲットごとに数百バイトを追加することが適切な場合は、データを格納するために適切なデータベースが適しています。しかし、ファイルを分類するためだけにリンクを作成することは、関係ありません。

ディスク使用量ツールは、メタデータではなくファイルコンテンツのサイズのみを表示し、シンボリックリンクはすべてメタデータであり、への追加のハードリンクと同様に、追加のハードリンクまたはシンボリックリンクによって消費されるサイズを通知しません。既存のファイル。 (技術的には、「ハードリンクのサイズ」はファイルのサイズです。結局のところ、名前のあるすべてのファイルにはハードリンクがあり、ハードリンクが1つ以上あるかどうかに関係なく内容は同じです。 )一部の洗練されていないツールは、異なるパスからファイルを表示した場合、ファイルのサイズを2回カウントする可能性があることに注意してください。 duおよびほとんどのグラフィカルファイルマネージャーは、ファイルを1回だけカウントします。

通常、シンボリックリンクは操作が簡単です。どちらがオリジナルでどちらがターゲットであるかを明確に識別できますが、ハードリンクではすべての名前が同等です。シンボリックリンクに関するもう1つのポイントは、オリジナルを編集してもシンボリックリンクは影響を受けないのに対し、複数のハードリンクを含むファイルを編集すると、エディターの動作によってはリンクが壊れることがあります(新しいバージョンで上書きするか書き込むか)新しいファイルを配置します)。

一次分類でファイルを移動できるようにしたい場合は、ハードリンクを使用する必要があります。シンボリックリンクは純粋にテキストであり、ターゲットに従わないためです。