"sort = size"を使用したツリーコマンドが不完全なようです。

"sort = size"を使用したツリーコマンドが不完全なようです。

サイズ別に並べ替えようとしています。

% tree -axCF --du --sort=size | grep -e '/$' 

├── [    8658884]  2022-10-09-backup/
├── [    5923934]  f24-01-22-backup/
├── [    5384825]  e2023-01-19-backup/
├── [    3627525]  h24-01-22-npanelize-nselect/
├── [    2162140]  b2022-12-18-backup/
├── [    1255661]  a2022-12-12-backup/
├── [     996252]  2021-08-12-backup/
├── [     647677]  2022-11-20-backup/
├── [     133361]  Test/
├── [      95801]  Boneyard/
├── [       1024]  g24-01-22-backup/         < Ooops
├── [      16031]  Misc/
├── [       1024]  Temp/                     < Ooops      
├── [     449317]  Znt/
│   ├── [     158892]  Boneyard/
│   └── [     199717]  VirginN-functions/
│       ├── [      34739]  backup.1/       < Nothing right in this dir
│       ├── [      29896]  Source/
│       ├── [      35481]  Text/
│       └── [      98577]  virgin/

...ご覧のように状況は悪くありませんが、いくつかの例外があります。これには理由がありますか?私ができることはありますか?

ところで、「grep」は、AFAICT、「tree」がディレクトリを表示しないからです。コンテンツすべてのファイルを表示しない限り(「-d」は使用できません)、「--du」を使用してもファイルを表示したくないため、grepを使用してフィルタリングします。奇妙に見えますが、本当です。

答え1

treeバージョン 1.7.0 および 1.8.0 では、サイズ別に並べ替える場合は考慮しません--du。ディレクトリはコンテンツのサイズではなく、独自のサイズでソートされます。これはバージョン2.0.0が修正されました。

関連情報