duはハードリンクを一度だけ計算しますが、ハードリンクのサイズは最初のハードリンクと同じですか?

duはハードリンクを一度だけ計算しますが、ハードリンクのサイズは最初のハードリンクと同じですか?

私は他のディレクトリ構造内の最初のハードリンクの多くのハードリンクを持つ大規模なディレクトリ構造を持っています。たとえば、dir1次の構造を使用します。

[dir1]$ tree
.
├── dir_inside
│   ├── file1
│   └── file2
└── other_dir
    ├── file1
    └── file2

ここで、dir2外部に存在するすべてのファイル(dir1たとえば、作成前に存在していたファイル)に主に存在するファイルへのハードリンクであるとします。dir1file1file2dir2dir2dir1

ハードリンクは一度だけ計算されるため、サイズを計算するときにdir1このコマンドを使用します。さて、これまでは大丈夫でしたが、一度だけカウントされます。つまり、実際にある最初のハードリンクから計算を開始しないという意味です。だから私たちはサイズと言うことができます。そのディレクトリ構造ではハードリンクが一度だけ計算されるため、サイズにも影響します。ハードリンクについて私が知っているように、ハードリンクは実際に最初に作成されたファイルサイズとファイルサイズは同じではありません。そうですか?ハードリンクが占める物理ディスク容量を見積もるために、別のディレクトリにあるハードリンクファイルのディレクトリサイズを取得する方法の明確な説明を聞きたいです。du -sh dir1dudir2du -sh dir22Gdir12Ginode

ベストアンサー1

ハードリンクの概念を間違って理解しているようです。
file[name]はinodeへのポインタであり、ハードリンクはまったく同じです。元の文書への参照はありません。

duファイルが他のファイルへのハードリンクとして作成されたかどうかを知る方法はありません。du単一の呼び出しduでinodeへの複数のポインタが発生した場合にのみフィルタリングできます。

du -sh dir1 dir2

おすすめ記事