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