[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#28890: Painfully slow: DU.exe -Ssb %CD%
From: |
Bernhard Voelker |
Subject: |
bug#28890: Painfully slow: DU.exe -Ssb %CD% |
Date: |
Wed, 18 Oct 2017 22:53:03 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 |
tag 28890 notabug
close 28890
stop
On 10/18/2017 02:12 PM, Gavin Holt wrote:
> Hi
>
> I am trying to use cmd batch file to list the size of all directories
> in my roaming user profile - so I an clean it out.
>
> DU.exe works well and gives me the exact output I want - the sum of
> the size of the files in each directory EXCLUDING subdirectories. e.g.
>
> P:\MyPrograms\EDITORS\Scite>du -Ssb %CD%
> 2641767 P:\MyPrograms\EDITORS\Scite
>
> P:\MyPrograms\EDITORS\Scite\tools>du -Ssb %CD%
> 8834439 P:\MyPrograms\EDITORS\Scite\tools
>
> I would use a for loop to iterate over all the directories, but
> testing with a single directory shows this command to be painfully
> slow.
> (dir /AD /B /S %USERPROFILE%)
>
> Is there any way to optimize the DU function or an alternative you can
> suggest that gives the identical output.
>
> I did read the link below - but the output is not what I wanted.
>
> https://stackoverflow.com/questions/30513287/faster-way-to-get-folder-size-with-batch-script
Given that you have 'du.exe' from Cygwin (so that you have the
latest gear), I'd go with a combination of 'find' to get directory names
and 'du' to print the sizes; I'd also use --threshold=SIZE to exclude
directories smaller than SIZE:
$ find . -depth -type d -exec du -hxSt 10M '{}' +
or with a pipe:
$ find . -depth -type d -print0 | du --files0-from=- -hxS --threshold=10M
Finally, as you asked for Windows, I want to mention a very useful
graphical tool: "windirstat".
As this is more a question how to use du(1) - and not a bug - I'm
marking this issue as such in our bug tracker.
Have a nice day,
Berny