"du -ks *"に対する答えが完全に間違っている可能性がありますか?

Ubuntu 18.04でディスクスペースレポートの不一致を調査しています。サブディレクトリのスペースを確認するためにaを実行して違いを絞り込みましたがdu -ks *、同じコマンドを再実行すると、ディレクトリの1つが以前に与えられた数の2倍のサイズを返しました。これは小さいですが(15Mではなく30M)、duの答えに対する信頼に影響を与える可能性があります。

これはすべて警告やエラーなしで発生します。データを間違って知って何も言わなかったのではないでしょうか?

乾杯、ヒューバート

ベストアンサー1

ハードリンクの効果を見ることができます。

ユーティリティduは、1つ以上のディレクトリに複数のinodeの関連名がある場合でも、各inodeが占めるサイズを一度だけ計算して表示します。

例:

$ tree
.
|-- dir-a
|   `-- file1
`-- dir-b
    `-- file1

2 directories, 2 files
$ ls -li dir-*/file1
25732 -rw-r--r--  2 myself  wheel  8757248 Dec  9 08:33 dir-a/file1
25732 -rw-r--r--  2 myself  wheel  8757248 Dec  9 08:33 dir-b/file1

ファイルdir-a/file1であり、dir-b/file1同じファイルの2つの名前です。ls -li出力(最初の列)のinode番号を書き留めます。

$ du -h dir-*
8.4M    dir-a
1.0K    dir-b
$ du -h dir-b
8.4M    dir-b

最初のコマンドを使用すると、ディレクトリサイズはdir-b1 KBにすぎませんが、2番目のコマンドを実行するとディレクトリサイズは8.4 MBとして表示されます。これは、inode内のファイルが最初のコマンドですでにfile1表示されているため、dir-a同じinodeが再表示されたときにサイズ計算に含まれないためです。dir-b

おすすめ記事