tree --du
A tree-t bemutató bejegyzéssel kapcsolatban jelezte egy olvasó, hogy még hasznosabb lenne a parancs, ha a kilistázott alkönyvtárak méretét is kiírná.
A -s kapcsoló hatására kiírja tree a méretet:
$ tree -s ~/rpmbuild
/home/user/rpmbuild
├── [ 4096] BUILD
│ ├── [ 4096] digikam-3.0.0-rc
│ │ ├── [ 1100] bootstrap.linux
│ │ ├── [ 1727] bootstrap.local
│ │ ├── [ 1986] bootstrap.macports
│ │ ├── [ 1348] bootstrap.mingw.bat
│ │ ├── [ 1322] bootstrap.msvc.bat
│ │ ├── [ 4096] build
│ │ │ ├── [ 79361] CMakeCache.txt
...
Látszik rögtön, ha valójában nem összegzi az alkönyvtárak méreteit. Ha a du-hoz hasonló működést szeretnénk, akkor a –du kapcsoló hasznosabbnak tűnik:
$ tree --du ~/rpmbuild
/home/user/rpmbuild
├── [ 204259367] BUILD
│ ├── [ 170682407] digikam-3.0.0-rc
│ │ ├── [ 1100] bootstrap.linux
│ │ ├── [ 1727] bootstrap.local
│ │ ├── [ 1986] bootstrap.macports
│ │ ├── [ 1348] bootstrap.mingw.bat
│ │ ├── [ 1322] bootstrap.msvc.bat
│ │ ├── [ 389406] build
│ │ │ ├── [ 79361] CMakeCache.txt
...
Meglepetés akkor ért, amikor ezt a -L kapcsolóval akartam együtt használni, hogy csak 2 mélységig írja ki tree a faszerkezetet:
$ tree --du -L 2 ~/rpmbuild
/home/user/rpmbuild
├── [ 20480] BUILD
│ ├── [ 4096] digikam-3.0.0-rc
│ ├── [ 4096] pktriggercord-0.79.01
│ ├── [ 4096] ufraw-0.18
│ └── [ 4096] xvba-video-0.8.0
├── [ 4096] BUILDROOT
├── [ 8192] RPMS
│ └── [ 4096] x86_64
├── [ 62852655] SOURCES
Láthatóan megváltoztak a számok. Nemcsak a kiírásból maradnak ki a 2 szintél mélyebben lévő alkönyvtárak és fájlok, hanem sajnos már az összesítésből is.
Kisebb trükközéssel azért elérhető a rendes működés ( -L n helyett grep kell 4*n+1-es ismétlődési limittel ), de túlzás lenne kényelmesnek nevezni a használatot:
$ tree --du ~/rpmbuild | grep -v '^.\{9,\}\['
/home/user/rpmbuild
├── [ 204259367] BUILD
│ ├── [ 170682407] digikam-3.0.0-rc
│ ├── [ 6749629] pktriggercord-0.79.01
│ ├── [ 24081554] ufraw-0.18
│ └── [ 2741681] xvba-video-0.8.0
├── [ 4096] BUILDROOT
├── [ 2252497] RPMS
│ └── [ 2248401] x86_64
├── [ 62852655] SOURCES