Duck is a very fast utility to find largest directories or files
Illustrator: Ekaterina [t.me/@kateUV]
I hope you will see it and I have couple of quite well ideas to chat them with you.
Write to [t.me/@AngryMuscle]
Releases available as single executable files – just download latest release for your platform, unpack and run.
Since version 2.8.0 utility has a two parts:
Duck_a
duck says analyseDuck_f
duck says findDuck_a
gathers sizes of all directories and files under specific path.
Duck_f
takes results of Duck_a
and looks for top of largest objects among them.
You can scanning 1Tb disk only once by Duck_a
(some minutes) and then many times finds largest objects by Duck_f
with different parameters (some milliseconds).
Duck_a
utilityDuck_a
calculates sizes of directories and files.
Parameters:
-path=c:\temp
- starting point to analyse-hr
- human readable results representation (text format), if omit that means JSON format-hrrows
- how many rows will be printed in a human readable mode (default - 50)By default program outputs results to console
.
Example a.1. Scanning from c:\temp and saving results in JSON format to results_a.txt
duck_a.exe -path c:\temp\ > .\results_a.txt
Example a.2. Scanning from c:\temp and output results in human readable format to console
duck_a.exe -path c:\temp\ -hr
Duck_f
utilityDuck_f
takes results of Duck_a
, iterates over them and finds top largest directories or files
Parameters:
-top=20
- how much directories or files will be founded-depth=2
- depth of analysis inside of results Duck_a
-filter=df
- filter by objects types (f
- files only, d
- directories only, df
- both of them)-size=c
- method of calculating directories size (c
clean size (excludes sizes of subdirectories) or f
- full size (inludes subdirectories))-path=abc
- not the same what this parameters means in duck_a
. It's a filter by part of the path (will be outputed all rows which path includes this one)-hr
- human readable results representation (text format), if omit that will be JSON formatBy default program outputs results to console
.
Example f.1. Searching top-10 largest directories or files on depth 2 and outputing results as JSON to file
duck_f.exe -depth=2 -size=c -top=10 -filter=df < .\results_a.txt > .\results_f.txt
Example f.2. Searching top-12 largest directories or files on depth 3 and outputing results in human readable format to console
duck_f.exe -depth=3 -size=c -top=12 -filter=d -hr < .\results_a.txt
Example f.3. Like as Example f.2
but with filtering by path of file (for example, print only dir or files contains .git
in their path & names)
duck_f.exe -depth=2 -size=c -top=12 -filter=d -path=.git -hr < .\results_a.txt
So there are results of Example f.3
Arguments:
filter: d
depth: 3
top: 12
hr: true
size: c
-------------------
Results:
1.| PATH: diskusage\.git\hooks | FULL SIZE: 22.89 Kb | CLEAN SIZE: 22.89 Kb | DEPTH: 3
2.| PATH: statusek\.git\hooks | FULL SIZE: 22.89 Kb | CLEAN SIZE: 22.89 Kb | DEPTH: 3
3.| PATH: statusek\.git | FULL SIZE: 114.22 Mb | CLEAN SIZE: 5.22 Kb | DEPTH: 2
4.| PATH: diskusage\.git | FULL SIZE: 22.67 Mb | CLEAN SIZE: 5.08 Kb | DEPTH: 2
5.| PATH: statusek\.git\logs | FULL SIZE: 5.30 Kb | CLEAN SIZE: 2.17 Kb | DEPTH: 3
6.| PATH: diskusage\.git\logs | FULL SIZE: 1.79 Kb | CLEAN SIZE: 741.00 b | DEPTH: 3
7.| PATH: diskusage\.git\info | FULL SIZE: 240.00 b | CLEAN SIZE: 240.00 b | DEPTH: 3
8.| PATH: statusek\.git\info | FULL SIZE: 240.00 b | CLEAN SIZE: 240.00 b | DEPTH: 3
9.| PATH: diskusage\.git\objects | FULL SIZE: 22.64 Mb | CLEAN SIZE: 0.00 b | DEPTH: 3
10.| PATH: diskusage\.git\refs | FULL SIZE: 155.00 b | CLEAN SIZE: 0.00 b | DEPTH: 3
11.| PATH: statusek\.git\objects | FULL SIZE: 114.19 Mb | CLEAN SIZE: 0.00 b | DEPTH: 3
12.| PATH: statusek\.git\refs | FULL SIZE: 196.00 b | CLEAN SIZE: 0.00 b | DEPTH: 3
CLEAN SIZE
(not included sizes of subdirectories). FULL SIZE
is not sorted and not the same as CLEAN SIZE
.Note about FULL SIZE
and CLEAN SIZE
For example, if you have directories:
A (100Mb)\B (70Mb)\C (60Mb)
then CLEAN SIZE
of these dirs will be:
A
- 30Mb
(excluded size of B
)B
- 10Mb
(excluded size of C
)C
- 60Mb
(the same as FULL SIZE
because no any subdirs inside)