![フォルダサイズ du, ls [重複]](https://linux33.com/image/143224/%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%B5%E3%82%A4%E3%82%BA%20du%2C%20ls%20%5B%E9%87%8D%E8%A4%87%5D.png)
フォルダサイズを説明できる人はいますか?フォルダには360 GBのサイズのファイルが1つしか含まれていません。 lsとduでは、440Gbが使用されたことを示します。
[root@liz DECSC]# ls -lha
total 440G
drwxrwxr-x 2 geo geo 4.0K Dec 6 19:56 .
drwxrwxr-x 14 geo geo 20K Dec 6 19:39 ..
-rwxrwxrwx 1 geo geo 360G Apr 8 2018 vor_gainzp2.dat
[root@liz DECSC]# du -hs
440G .
[root@liz DECSC]#
答え1
これは、ext3などの拡張ではなく、直接ブロック割り当てを使用するファイルシステムにあるように聞こえます。
これは、各データブロックにテーブル(インデックスノード)にエントリがあることを意味します。最初の12項目は直接ブロックです。つまり、データブロックを直接指します。次の項目は、ブロック番号も含むブロックを指す間接ブロックです。ブロック13は二重間接ブロックであり、ブロック14は三重間接ブロックである。
これは、大容量ファイル(370 GBファイルなど)の場合、すべてのデータブロックをアドレス指定するには多数のブロックが必要であることを意味します。これが違いをdu
考慮する場所かもしれません。みんな単純なデータブロックではなくブロック。ls
ファイルサイズを表示しますが、データブロックだけでなく、ディレクトリの合計スペースと使用されているすべてのスペースを再表示します。
大きなファイルの場合は、ext3を使用しないことをお勧めします。ext2もお勧めしません。 ext4などの最新のスコープベースのファイルシステムを使用します。エクステントベースのファイルシステムでは、ブロックは「342ブロックに拡張された3874の最初のブロック」にインデックス付けされ、必要に応じてより多くのエクステントが追加されます。これにより、2つの数字だけを使用して多くのブロックを見つけることができます。これはスペース効率が高いだけでなく、追加のチャンクをすべてロードする必要がないため、はるかに高速です。