web-dev-qa-db-ja.com

Thunarに「再帰的な」ファイルサイズを表示させる方法はありますか?

私はThunar 1.6.3を使用していますが、現在、多数のフォルダーを見ると、次のようになっています。

Folder 1        8,2 kB
Folder 2        4,1 kB
Folder 3        4,1 kB
Folder 4        0   kB

これらの「サイズ」番号がどこから来たのかはわかりませんが、フォルダ内のすべての実際のサイズを反映していないのは確かです。なぜなら、フォルダを右クリックして「プロパティ」を選択するとサイズが合計で100 Gbを超えます。

質問

  • Thunarは、12.04と14.04の両方のコマンドラインと同様に、4Kのようなフォルダーサイズを表示するのはなぜですか?この数字はどういう意味ですか?
  • 代わりに複合サイズを表示する方法はありますか。それは、ターミナル、Thunarまたはその他のファイルマネージャーで、フォルダーとすべてのコンテンツの計算された再帰サイズです。 (注意:シェルスクリプトソリューションは探していません)。
6
pzkpfw

これを説明するには、Linuxファイルシステムの構造を少し説明する必要があります。ほとんどのLinuxファイルシステムは同様のことを行いますが、現在のデフォルトであるext4を想定しています。

ファイルシステム構造

  • iノードは、ファイルシステムが論理ユニットとして認識する基本ブロックです。
  • ディレクトリiノードには、他のiノードへの参照が含まれています。
  • ファイルのinodeには、メタデータ、実際のデータ、および連続ブロックへの参照が含まれます。これは、ファイルを非連続的に保存する必要がある場合に備えています。

リンク集

  • Ext4は2種類のリンクをサポートしています。ハードとソフト。
  • ハードリンクは、iノードへの直接の参照です。各ファイルには、所属するディレクトリから少なくとも1つのハードリンクがあります。
  • ディレクトリは単なるiノードであり、iノード参照のグループに関する情報があるため、ディレクトリ自体または親を参照できます。つまり、フォルダーは同じフォルダーの子と親の両方になります。

さて、これは混乱するかもしれません。説明させてください。次の3つのフォルダーA、B、Cがあるとします。

C is in B.  
B is in A.

さて、楽しい部分は、CはAと同じiノードを指すことができ、循環参照ループと呼ばれることもあることです。再帰を試みると、終わりのないループに遭遇します。

  • ソフトリンクは、ターゲットの場所へのディレクトリパスを記録する通常のファイルです。これらはファイルシステム上でマークされているだけで、テキスト行ではなく、他の場所へのリンクとして解釈される必要があります。たとえば、Nautilusは、[リンクの作成]/[ここにリンク]オプションを使用するとソフトリンクを作成します。

だから何?

したがって、サイズを再帰的に計算しようとすると、その癖があります。デフォルトでサイズを再帰的に計算することはお勧めできません。しかし、私が知っているすべての適切なファイルマネージャーのプロパティダイアログには、再帰的に計算された合計サイズが表示されます。

Windowsに問題はありませんか?

実際、WindowsはNTFSと呼ばれる別のファイルシステム形式を使用します。これは、すべてのファイルとそのサイズのリストを保持します。そのため、常に合計サイズを簡単に知ることができます。

では、なぜNTFSを使用しないのでしょうか?

Unixのパーミッションの概念(所有者、グループ、およびユニバースの個別のrwx)をサポートしていません。その単一の理由により、Linuxファイルシステムとして使用するには不向きです。 Ext4は、この小さな不便さは多くの人にとって重要ではないということを表にたくさん伝えています。

わかった。必要なサイズをギミ。

duを試しましたか?

duはどのように機能しますか?

duはディスク使用量を表します。実際には、iノードブロックをカウントしますが、ダブルカウントしないように注意します。サイズを合計すると、合計サイズが得られます。

TL; DR

du -hs <foldername>を使用して、ディスク上のフォルダーの実際のサイズを見つけます。詳細については、man duをお読みください。

7
Mahesh

thunarトップメニューで、[編集]> [カスタムアクションの構成]に移動し、次を使用して新しいカスタムアクションを追加します。

  1. 基本タブ:任意の名前[ex。フォルダー-ファイルサイズ]、選択したフォルダーのコマンドdu -h -c %N | grep total | zenity --text-infoまたはdu -chs %N | zenity --text-infoまたは合計サイズが続くファイルサイズ。
  2. 外観条件タブ:すべてのボックスをチェックします。

このソリューションは http://crunchbang.org で見つけました

4
vasilis74