Suositut: Tiedot päivitetty 26. lokakuuta 2026

Kategoriat

Internet1 355
Viestintä321
Ääni ja video898
Grafiikka ja suunnittelu539
Toimisto ja tuottavuus1 120
Kehitystyökalut3 132
Tekoälytyökalut527
Tietoturva ja yksityisyys385
Järjestelmätyökalut3 113
Pelit523
Opiskelu ja tiede239
Verkko ja IT284

Disk Usage Analyzer: vanhemmat versiot ja versiohistoria

View disk space usage and delete unwanted data, fast.

Sebastian Thiel Levy- ja USB-työkalut #55 Levy- ja USB-työkalut

Disk Usage Analyzer -ohjelmasta on luettelossa 27 versiota, ensimmäinen 10. elokuuta 2024 ja uusin 2.46.0. Jokainen versio linkittää julkaisijan omiin asennustiedostoihin.

2024: 1 1 24 2025: 5 5 25 2026: 21 21 26

27 versiota 2 vuoden aikana · noin 12 vuodessa

VersioPäivämääräKokoTiedostot
2.46.0Uusin 15. lokakuuta 2026 — 64-bittinen ZIPARM64 ZIP32-bittinen ZIP
Muutosloki
A bugfix release, and one that should also restore cargo installations, making them function.
New Features
- make walk result buffering configurable per worker
Replace the fixed QUEUED_BATCHES_PER_WORKER constant with
Options::queued_batches_per_worker and a chainable builder method. Use
two queued batches per worker by default in both production and tests,
preserving the original bounded buffering behavior.
Consumers that pause to process entries can opt into a larger queue to
keep traversal workers busy, trading memory for less idle time. A value
of zero selects an unbuffered channel. Check the worker-count
multiplication so excessive capacities cannot silently overflow.
Update existing Options literals to inherit the new default. Verify the
actual queue capacity with one and two workers, and exercise larger and
unbuffered queues through the public single-root and multi-root walkers.

Bug Fixes
- pass strict workspace Clippy on Rust 1.99
Replace empty-container assertions with equality comparisons and empty
string checks with inequality comparisons. This satisfies Clippy's
assert_is_empty lint while showing actual values when assertions fail.
Locally allow the deprecated fetch_update alias in directory identifier
allocation. Its replacement, try_update, requires Rust 1.95, while
dua-core supports Rust 1.88. Preserve the existing atomic update and
overflow handling without raising the minimum supported Rust version.
- preserve flame graphs when export fails

Commit Statistics
- 6 commits contributed to the release.
- 15 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Merge pull request #413 from dduugg/buffer-batches-ahead-of-consumer (4179fe2)
- Pass strict workspace Clippy on Rust 1.99 (afbe487)
- Make walk result buffering configurable per worker (2989d30)
- Merge pull request #412 from Likio3000/fix/atomic-flamegraph-export (d11cb9c)
- Review (c0c749a)
- Preserve flame graphs when export fails (9226029)
2.45.1 30. syyskuuta 2026 — 64-bittinen ZIPARM64 ZIP32-bittinen ZIP
Muutosloki
Documentation
- correct platform defaults in threads help

Bug Fixes
- don't fail on sole directory inputs beyond MAX_PATH on Windows
A sole directory input is changed into so its entries can be listed and
reported relative to it, but set_current_dir enforces MAX_PATH on
Windows (os error 206) even though the directory itself can still be
traversed through verbatim paths.
When the change fails, expand the directory into absolute input paths
directly instead of aborting, which makes a single long directory input
work in list, aggregate, stacks and interactive modes alike. Reported
paths are absolute then, consistent with how multiple inputs are already
displayed.
The expanded root is returned to callers so the interactive mode still
knows which directory the inputs belong to, and recorded in the new
WalkOptions::base_dir, which every traversal uses as the working
directory stand-in for ignore-pattern matching. That keeps --ignore-from
patterns matching descendants relative to the expanded root - identical to
what a successful chdir would have produced.
Fixes #410
- don't panic on non-UTF-8 filenames when matching ignore patterns
On Windows, NTFS filenames may contain unpaired surrogates that cannot be
represented in UTF-8. IgnorePatterns::is_excluded converted each entry's
relative path with the panicking gix::path::into_bstr, so a single such
name anywhere in a scanned tree aborted the whole process when
--ignore-from was used - in list, aggregate and stacks modes alike, as
well as in clean's entry filtering.
Match on the OS string's encoded bytes instead - OsStr::as_encoded_bytes
yields a self-synchronizing UTF-8 superset (WTF-8 on Windows, the raw bytes
on Unix) which represents lone surrogates losslessly. The glob matcher then
compares bytes, so wildcard patterns that don't spell out the invalid code
unit, like * or *.txt, still match such names instead of silently
letting them through.
Fixes #408

Commit Statistics
- 9 commits contributed to the release.
- 18 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Merge pull request #411 from Mathjk/fix/long-path-single-dir (9a854d2)
- Review (1d68918)
- Merge pull request #409 from Mathjk/fix/ignore-from-nonutf8 (37e6aa8)
- Don't fail on sole directory inputs beyond MAX_PATH on Windows (2fbb8f5)
- Don't panic on non-UTF-8 filenames when matching ignore patterns (22d5588)
- Merge pull request #405 from Byron/del-remaining (d190513)
- Show deleted bytes in the deletion status line (9a3bfa1)
- Merge pull request #404 from Likio3000/docs/dua-cli-behavior-20260923 (cf59618)
- Correct platform defaults in threads help (d6acb50)
2.45.0 12. syyskuuta 2026 — 64-bittinen ZIPARM64 ZIP32-bittinen ZIP
Muutosloki
This release packs an incredibly useful new sub-command called dua clean [--depth N],
to automatically and efficiently find typical build products that you may want to delete,
for Rust and Zig and Node for now.
Also, when deleting entries, the TUI does not block anymore, but shows the decreasing number
of bytes as files are deleted, until the marked entry finally disappers. The TUI can still be
used then, albeit in read-only mode.
Oh, and it also got faster on macOS when there are folders with a lot of files, when it will
switch aways from bulk-reads to multi-threaded stat calls instead, which in my case led to
a 2.5x speedup.
New Features
- add Git-aware dua clean and background deletion
This commit was mostly rubber-stamped, but tested for a week or so before that.
By now it's fair to accept that dua is in "tool that needs to work, without
needing to be very familiar with how it works" territory, while I still look
at the code at least but without the requirement to understand it all.
Add dua clean [--depth N] [DIRECTORY]... to discover disposable build
artifacts and caches, size accepted candidates, and offer them in a dedicated
cleanup hub. Keep the TUI responsive during scanning, deletion, and trashing.
__KOMAC_HEADER__ Discovery and safety
- Search directory entries and types before collecting size metadata. Recognize
Node dependencies, Python caches and virtual environments, Cargo build output,
and Zig caches and output. Require project markers for ambiguous names.
- In Git repositories, require expendable ignore matches and reject tracked
contents, conflict stages, gitlinks, and sparse ancestors. Consult HEAD when
the index is absent and reject candidates when validation fails.
- Reject nested repositories, case variants of Git markers, unreadable contents,
excluded descendants, and disallowed filesystem boundaries.
- Feed discovered roots into dua-core's running walker within the configured
thread budget. Bound active candidates and publish each independently after
sizing and validation; commit hardlink/APFS accounting only on acceptance.
- Search without a depth limit by default; --depth bounds discovery. Support
traversal filters and --once, with no snapshot import/export or parent
scanning in clean mode.
__KOMAC_HEADER__ Cleanup hub and browsing
- Title the hub with its input directories, group siblings and contained
candidates, and keep rows in largest-first order as scan results arrive.
- Open groups as scoped views of existing candidate nodes. Reuse ordinary
sorting, glob search, annotations, navigation, and marking within the group;
keep group membership and controls local to the hub.
- Group marks target actual candidates. Complete partial marks and toggle fully
marked groups off, preserving the real parent and unrelated contents.
- Refresh recorded candidates without widening their deletion scope. Revalidate
whole candidates with their original discovery roots, restore browser/search
positions, and clear stale marks before tree indices are reused.
__KOMAC_HEADER__ Background deletion
- Run deletion and trash work off the main thread, updating remaining bytes in
the tree, mark pane, and progress message about once per second.
- Allow navigation, search, sorting, pane controls, and suspend/resume while
freezing marks and blocking further filesystem actions until the batch ends.
- Preserve bounded filesystem concurrency, parallel file removal, and removal
of child directories before parents. Batch tree updates using scanned sizes
without double-counting overlapping marks or completed subtrees.
- Keep failed entries with their remaining sizes and errors. On quit, cancel
pending work, apply in-flight results, and join workers. On event-loop failure,
cancel and disconnect events before joining. Trash progress advances when
each native trash call returns.
- minimize right-hand panels with ]
A very quick review, but one that showed that the GUI probably shouldn't get more complicated.
Or else it would be batter with 
2.44.0 30. elokuuta 2026 — 64-bittinen ZIPARM64 ZIP32-bittinen ZIP
Muutosloki
This is a massive release that cost my weekend and was motivated by the chance to
reduce the amount of open issues to 0.
Besides the memory usage being cut in half, one can now keep snapshots of interactive
runs, and compare them to older snapshots, or simply view them again with different
settings.
Finally, it's now possible to configure keyboarding as well.
What follows is the more elaborate, generated version of this text, and not my speech.
This release turns traversal results into durable artifacts, shows exactly where
disk usage moved, puts every interactive key under user control, and makes large
traversals substantially leaner.
dua interactive --export before.dua
# ... later ...
dua interactive --export after.dua
dua diff before.dua after.dua
Snapshots. Completed interactive traversals can now be exported atomically to
a deterministic, SHA-256-protected snapshot, with streaming zlib compression by
default. Load one with dua interactive --import for a read-only tour, or replay
it through dua aggregate --import as a flat list, a depth-limited tree, or
folded stacks, with the usual sorting and total controls. Snapshot imports retain
root order and traversal metadata; the aggregate renderers replay them with
bounded memory. The interactive view
still supports navigation, searching, sorting, marking, and opening stored paths
that continue to exist, while refresh, trash, and deletion stay safely disabled.
Its mark pane drops destructive prompts and colors for snapshots, or whenever
both destructive actions are unbound. The dua crate exposes the snapshot,
replay, and diff APIs for library users as well.
Diffing. dua diff OLD NEW streams additions, removals, and signed size
changes as a compact, colored context tree, then shows the largest additions and
removals. Use --directories-only, --prefix, --depth, --format, and
--summary-limit to shape the report. Both snapshots are checksum-verified in
parallel before their canonical entry streams are merged in bounded memory;
whole added or removed directories collapse into a single useful change.
Configurable keybindings. Every interactive action can now be rebound or
disabled, and dua config show-default documents all bindings. Pane hints follow
the configured keys, while --once understands the same named and modified
bindings as well as compact character sequences.
Lower memory use. Traversal state now uses a compact arena-backed tree,
shared filename storage, and dense directory IDs; snapshot replay borrows names
and reuses decoding buffers. In a local ~/dev scan, /usr/bin/time -lp measured
maximum RSS at 268,206,080 bytes versus 524,812,288 bytes for 2.43.1—a 49%
reduction.
More interactive polish. Shift+U can extend a completed scan into its parent,
the mark pane shows the selected percentage of the root, and Ctrl+Z now suspends
and cleanly resumes the TUI on Unix.
New Features
- accept configured keys in --once
Keyboard shortcuts are configurable, but --once could only synthesize plain
character events. That made named and modified bindings impossible to reproduce
in one-shot debugging runs.
- Reuse the configuration keybinding parser for --once.
- Convert parsed bindings into terminal events.
- Preserve compact character sequences such as --once=jko.
- add streaming snapshot diff command
__KOMAC_HEADER__ Command-line interface
- Add dua diff OLD NEW to compare an earlier traversal snapshot with a later
one.
- Support byte-format selection either globally or after the subcommand, with
the configured format as the fallback.
- Add --directories-only for aggregate directory changes, --prefix PATH
for a component-aware subtree filter, --depth DEPTH for limiting the
displayed tree, and --summary-limit COUNT for sizing or hiding the largest
additions and removals lists.
- Treat the selected root or prefix as the first displayed depth level while
leaving summary calculations unbounded.
- Reject traversal-only options and input paths because diffing never walks
the live filesystem.
- 
2.43.1 29. elokuuta 2026 — 64-bittinen ZIPARM64 ZIP32-bittinen ZIP
Muutosloki
Bug Fixes
- stream folded stacks during traversal
Unlimited-depth aggregate --stack retained every traversal node and emitted only
after walking, allowing memory to grow with entry count.
Write each exclusive-size line as its parent-first event is integrated and
retain only root accounting. Keep depth-limited mode unchanged because it must
roll hidden descendants into visible frames.

Commit Statistics
- 2 commits contributed to the release.
- 4 days passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #382

Commit Details
view details
- #382
- Stream folded stacks during traversal (1f2575a)
- Uncategorized
- Merge pull request #384 from Byron/stacks-memory (5cad619)
2.43.0 25. elokuuta 2026 — 64-bittinen ZIPARM64 ZIP32-bittinen ZIP
Muutosloki
Thanks to our contributors, there are not one, but two (a joke, a human is writing this with fleshy fingers :D) headline features:
1. dua aggregate --depth N shows an indented tree-like view, instead of a flat list
2. dua aggregate --stack | inferno-flamegraph > fire.svg outputs a flame-graph compatible stack listing, for pretty visualisations of the directory. It also works with --depth N.
On the side, on macOS, the bytes output of dua now matches du byte-perfectly, and for the first time it's possible to pipe dua
output into a file without terminal escape sequences (why did this take me so long again?).
New Features
- Add dua aggregate --depth N for indented tree output

Bug Fixes
- don't output colors when stdout isn't a terminal.
This facilitates piping into a file.
- --stats printed the u128 sentinel as the smallest file size
The sentinel reset was guarded by entries_traversed == 0, but an entry
whose metadata cannot be read still counts as traversed while never
contributing a size. Reset when the sentinel is still in place instead.
- Apply --ignore-dirs to prepared aggregate roots
- Apply --ignore-dirs to paths dua expanded into roots itself

Commit Statistics
- 28 commits contributed to the release over the course of 9 calendar days.
- 10 days passed between releases.
- 5 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Merge pull request #378 from ChrisJr404/feature/stacks-folded-output (886f3ce)
- Fix folded stack path assertions on Windows (52df4c5)
- Progress support for --stack and --depth N (e476971)
- Review (a14f2b7)
- Add 'stacks' subcommand emitting folded stacks for flame graphs (d40a44d)
- Merge pull request #380 from ChrisJr404/feature/aggregate-tree-depth (7cfa98c)
- Review (136a86a)
- Add dua aggregate --depth N for indented tree output (74bf377)
- Merge pull request #373 from VXNCXNX/fix/root-path-ending-in-dotdot (c4cda95)
- Don't output colors when stdout isn't a terminal. (b1e16a0)
- Merge pull request #375 from tamird/perf-skip-apfs-apparent-size (06b4237)
- Review (511bb35)
- Merge pull request #372 from VXNCXNX/fix/smallest-file-sentinel-leak (95ab634)
- Merge pull request #374 from tamird/perf-skip-empty-ignore-realpath (83d467a)
- Review (5bf9204)
- Review (de9f8a0)
- Merge pull request #376 from tamird/perf-stream-prepared-roots (bed32a4)
- Skip path resolution without ignored directories (6c1c511)
- Avoid materiailizing vector (dbf33e6)
- Skip clone metadata for apparent sizes (18f6395)
- --stats printed the u128 sentinel as the smallest file size (dd9e0ce)
- Merge pull request #371 from tamird/macos-apfs-clone-accounting (7231d83)
- Review (0acd5fa)
- Count fully shared APFS clones once (6b3a231)
- Merge pull request #370 from VXNCXNX/fix/ignore-dirs-on-expanded-roots (cfa5ed2)
- Apply --ignore-dirs to prepared aggregate roots (f9b6200)
- Review (1c41b46)
- Apply --ignore-dirs to paths dua expanded into roots itself (72faa62)
2.42.1 15. elokuuta 2026 — 64-bittinen ZIPARM64 ZIP32-bittinen ZIP
Muutosloki
*the same as 2.42, and:
Starting directories with a large amount of files, like 50k, now see a 5x speedup on macOS and Windows as bulk-reading is also done there. Note also that this is still a small absolute difference, 100ms vs 500ms, but a good demonstration of how much large trees with a lot of such directories will benefit by this, as these small absolute improvements accumulate.
Commit Statistics
- 3 commits contributed to the release.
- 1 day passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Merge pull request #369 from tamird/macos-prepared-roots (3b1659e)
- Review (ffb2a2e)
- Reuse bulk metadata for macOS aggregation roots (d45a2f8)
2.41.1 4. elokuuta 2026 — 64-bittinen ZIP
Muutosloki
A one-line change that makes all the difference: Windows TUI performance isn't sluggish anymore as the drawing is now buffered!
Bug Fixes
- buffer terminal frame output

Commit Statistics
- 5 commits contributed to the release.
- 1 day passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Prepare changelog for upcoming release (f18921c)
- Merge pull request #361 from larsch/fix/buffer-tui-output (c05f608)
- Buffer terminal frame output (bccddb7)
- Merge pull request #360 from Byron/windows-performance (f73cc51)
- Preserve Windows verbatim paths (381824f)
2.41.0 3. elokuuta 2026 — 64-bittinen ZIP
Muutosloki
There are two major features: 30x and more performance on Windows, and --ignore-from <file> support.
This makes this release the best one yet, and I do hope that I can last a week or more until the next one.
New Features
- add --ignore-from to exclude paths with gitignore-style patterns
Reads gitignore-syntax patterns from one or more files and leaves everything
they match out of the report, in both aggregate and interactive mode. This is
the equivalent of rsync's --exclude-from and restic's --exclude-file, so the
same pattern file can answer "how much of this would actually be backed up?".
Matching is powered by gix-ignore, which is already a dependency, so negation,
anchoring, ** and directory-only patterns all behave exactly like Git.
Excluded directories are pruned from the walk rather than only hidden, and
excluded top-level paths are dropped before the walk so they are absent from
the report instead of appearing as empty.

Bug Fixes
- propagate background root device errors
Background traversal replaced failed root-device lookups with device ID
zero. Readable root metadata could then be rejected as cross-device while the
traversal incorrectly retained a successful error count.
Skip roots whose lookup fails and carry their per-root errors in the traversal
completion event, restoring the previous statistics and exit status. Keep
interleaved overlapping and duplicate roots isolated by including each root path
Arc allocation in private directory-map keys while preserving public traversal
event types.
- propagate aggregate root device errors
A failed root-device lookup was replaced with device ID zero after the parallel
traversal rewrite. For a dangling symlink, symlink metadata remained readable
but failed the device check, hiding the initialization error and producing a
successful exit status.
Count the lookup failure on its root, mark that root complete for ordered
output, and omit it from traversal. Flush completed roots after traversal
because failed roots emit no completion event.
Keep all roots in the shared
parallel traversal pool; when hard links are deduplicated, per-root attribution
is scheduling-dependent while the total remains correct, in the name of performance.

Commit Statistics
- 14 commits contributed to the release.
- 2 days passed between releases.
- 3 commits were understood as conventional.
- 1 unique issue was worked on: #302

Commit Details
view details
- #302
- Avoid per-entry Windows metadata queries (9831b1e)
- Uncategorized
- Prepare changelog prior to release (2b78d30)
- Merge pull request #359 from Byron/windows-performance (bdee013)
- Review (d784e02)
- Simplify platform-specific walker entries (f94fe6d)
- Address CI comment about reader type complexity (542e36a)
- Use Result::is_ok_and in entry checks (29b9c8c)
- Optimize Windows directory metadata scheduling (e36a66d)
- Merge pull request #358 from pelazas/feat/ignore-from (1db53ae)
- Review (af83aa5)
- Add --ignore-from to exclude paths with gitignore-style patterns (27d16f0)
- Merge pull request #357 from Byron/crossdev-fix (d7b1503)
- Propagate background root device errors (b4d944e)
- Propagate aggregate root device errors (01d7e00)
2.40.1 1. elokuuta 2026 — 64-bittinen ZIP
Muutosloki
Even more performance, up to 15%. That's it now, trying to hit 1 week without a release ;).
Bug Fixes
- avoid aggregate progress flicker Track whether aggregate progress has actually been rendered before clearing the
terminal line. Keep sorted multi-root progress visible until final output, while
clearing before immediate unsorted results, and cover fast roots that previously
emitted repeated invisible erase sequences.

Performance
- parallelize filesystem traversal
Split completion-order directory entries into small stealable metadata jobs
and use idle-aware relay waking with LIFO local queues. Submit all top-level
roots to the same worker pool, carrying a root index through descendant jobs and
result batches so aggregate and interactive traversal retain per-root accounting
without serial barriers.
Also, track pending work per root and emit completion events after all of a
root's batches are delivered. Flush the longest completed input-order prefix so
--no-sort prints results immediately without serializing the shared worker pool.

Commit Statistics
- 7 commits contributed to the release over the course of 1 calendar day.
- 1 day passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Prepare next release (8163e0e)
- Merge pull request #356 from Byron/performance (fea714d)
- Parallelize filesystem traversal (4dba3ad)
- Avoid aggregate progress flicker (3b7415b)
- Upgrade ratatui to 0.30.2 (995571d)
- Upgrade byte-unit to 5.2.5 (f113e06)
- Upgrade compatible dependencies (86b5db8)
2.40.0 31. heinäkuuta 2026 — 64-bittinen ZIP
Muutosloki
The headline feature is 40% more scanning speed in my particular scenario. More cores on Linux should now scale much better as well, so I wouldn't be surprised if it's even faster for you.
New Features
- Replace jwalk with a work-stealing directory walker for up to 40% more scan speed
Replace jwalk and Rayon with a crate-local walker built on crossbeam-deque
and standard-library threads. Directory reads and metadata collection run on
stealable worker queues, while a bounded channel limits completed batches held
ahead of the iterator. The walker never follows symlinks and no longer sorts
entries because consumers sort their final results where needed.
Provide two delivery modes on the shared implementation: aggregate scans and
recursive deletion use completion order for maximum throughput and continuous
progress; interactive traversal uses parent-first delivery so ancestor sizes
and entry counts grow throughout the scan. Recursive deletion remains parallel
through scoped standard-library workers.
Raise the macOS default from three to eight filesystem workers based on
warm-cache measurements.

Commit Statistics
- 4 commits contributed to the release.
- 1 day passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Thanks Clippy
Clippy helped 1 time to make code idiomatic.

Commit Details
view details
- Uncategorized
- Prepare changelog prior to release (5c9976f)
- Merge pull request #355 from Byron/workstealing (0b21b22)
- Thanks clippy (9e36f03)
- Replace jwalk with a work-stealing directory walker for up to 40% more scan speed (8ada93f)
2.39.1 30. heinäkuuta 2026 — 64-bittinen ZIP
Muutosloki
This release is merely to allow attestations to be used, and you should be able to validate the binary origin with:
- gh attestation verify ./dua-v2.39.1-aarch64-apple-darwin.tar.gz --repo Byron/dua-cli
Commit Statistics
- 4 commits contributed to the release.
- 2 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Prepare next release with attestations (953a87a)
- Merge pull request #354 from Vam-si-krish/ci/release-provenance (2d11eb9)
- Review (ddfd0fb)
- Add provenance attestations for release archives (f374d9c)
2.39.0 28. heinäkuuta 2026 — 64-bittinen ZIP
Muutosloki
The main feature this release is parallel deletion, both for collecting files to be deleted as well as the deletion itself. On my local disk, it now reaches 144k files/s overall deletion performance.
New Features
- delete files in parallel
Recursive deletion now uses the same worker count selected with --threads for
the initial filesystem scan, to accelerate the collection of files to be deleted,
as well as the deletion of files.
When marked directories are deleted, dua now:
1. walks the selected tree without (following symbolic links as usual)
2. collects regular files and symbolic links;
3. removes those entries across the configured workers;
4. removes directories from deepest to shallowest after their contents are gone on a single thread.
A value of 1 keeps deletion effectively serial. Larger values allow
independent file removals to overlap, which is most useful for large directory
trees or filesystems with concurrent metadata operations.

Bug Fixes
- open errors and cleanup/gitignored footer labels

Refactor
- use jwalk for parallel, symlink-safe deletion
Replace the hand-rolled stack traversal in delete_directory_recursively
with a jwalk WalkDir (follow_links=false, skip_hidden=false). This is
the same walker the rest of dua uses for scanning, so deletion now
benefits from parallel traversal on multi-core machines.
Behaviour preserved:
- Symlinks are removed without following them (remove_file on the link).
- Directories are removed deepest-first so each remove_dir sees an
empty directory.
- Error counting and byte accounting unchanged.
Adds unit tests covering: single file, nested tree, symlink safety,
and missing-path error reporting.

Test
- Make traversal tree tests filesystem-independent
That way, tests will work locally.

Commit Statistics
- 10 commits contributed to the release over the course of 4 calendar days.
- 8 days passed between releases.
- 4 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Prepare changelog for release (254ea4f)
- Merge pull request #353 from Solaris-star/fix/43-jwalk-parallel-deletion (0f55a5c)
- Delete files in parallel (b04f9f3)
- Review (cd82444)
- Make traversal tree tests filesystem-independent (48fb6df)
- Use jwalk for parallel, symlink-safe deletion (7e9d0a8)
- Merge pull request #352 from l0rush1/main (496bd78)
- Rustfmt annotation_message match arm (3dba5a4)
- Open errors and cleanup/gitignored footer labels (f2a957a)
- Fix: interactive exit code and footer entries/s (1b3f60d)
2.38.1 20. heinäkuuta 2026 — 64-bittinen ZIP
Muutosloki
This release fixes a long-standing bug where NO_COLOR=1 would make all styling disapear, including
the selection indicator itself. Now it's usable, finally.
Bug Fixes
- only strip colors when NO_COLOR is enabled

Commit Statistics
- 3 commits contributed to the release.
- 6 days passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #238

Commit Details
view details
- #238
- Only strip colors when NO_COLOR is enabled (ad19f3f)
- Uncategorized
- Prepare changelog prior to release (9c89430)
- Merge pull request #351 from Byron/fix-colors (9c9364d)
2.38.0 14. heinäkuuta 2026 — 64-bittinen ZIP
Muutosloki
New Features
- notify after interactive work when unfocused
Interactive scans, refreshes, deletion, and trash operations can take long
enough that users leave the terminal, but dua previously had no way to signal
completion without exiting the TUI.
Track terminal focus events and emit sanitized OSC 777 notifications only when
the terminal is unfocused. Include concise entry, byte, duration, and error
statistics, and add a notifications config section whose scan_finished and
delete_finished switches default to true.

Commit Statistics
- 7 commits contributed to the release over the course of 6 calendar days.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #347

Commit Details
view details
- #347
- Notify after interactive work when unfocused (d800f22)
- Uncategorized
- Merge pull request #348 from Byron/notify-when-done-and-unfocussed (92f4502)
- Merge pull request #346 from rlex/apple_silicon_ci (0c81cb8)
- Review (08d960e)
- Arm64 osx gh build (2d8b45f)
- Merge pull request #345 from luhenry/main (11892d5)
- Add release for linux-riscv64 (a90b5d8)
2.37.1 29. kesäkuuta 2026 — 64-bittinen ZIP
Muutosloki
Bug Fixes
- degrade entries title on narrow terminals
improve the interactive top-bar so narrow terminal
sizes degrade gracefully. Statistics should disappear when the current path
needs the space, and the path should compact by removing the fewest consecutive
middle components needed to fit.

Commit Statistics
- 5 commits contributed to the release.
- 7 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Merge pull request #344 from Byron/interactive-path-display-degradation (157996b)
- Degrade entries title on narrow terminals (a83583c)
- Merge pull request #341 from knightmare2600/main (68989b6)
- Review - more consistent naming, add name to build array (2ade4e7)
- Update release.yml (a506c74)
2.37.0 21. kesäkuuta 2026 — 64-bittinen ZIP
Muutosloki
The hallmark change in this release is support for "precious files", a form
of Git-ignored file that gitoxide doesn't consider expendable.
Chore
- remove the git Cargo feature
For simpler code, and nobody needed that anyway. Can be re-introduced
if that changes.

New Features
- make cleanup heuristics configurable
Add cleanup_heuristics configuration option for interactive mode,
to allow turning it off mainly as it default to 'on'.
- Allow disabling Git support using the configuration file.
gitignore Configuration Option
A new config option, gitignore, now lets users control Git-ignored entry
detection in interactive mode. It is defined as an optional boolean in the
config (Option<bool>), and if left unset it defaults to enabled behavior (same
as previous behavior).
Usage
You can control it in your config file as follows:
gitignore = true
gitignore = false
Motivation
This makes Git-ignored behavior configurable without requiring feature flags or
build-time changes, while preserving existing behavior for users who do not set
the option.
- enable precious ignore syntax through Gitoixde
When opening the Git repository for ignored-entry
detection, add a config override so precious ignore syntax works out of the box.
Usage
preciousFile
$preciousFile
disposable
Now preciousFile won't show up in dua for auto-marking,
only disposable will.

Commit Statistics
- 6 commits contributed to the release.
- 4 days passed between releases.
- 4 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages

Commit Details
view details
- Uncategorized
- Prepare changelog prior to release (fbeb7a1)
- Merge pull request #340 from Byron/precious-support (568eb05)
- Make cleanup heuristics configurable (b572b96)
- Allow disabling Git support using the configuration file. (9b96b02)
- Remove the git Cargo feature (199f16a)
- Enable precious ignore syntax through gix (be06d77)
2.36.0 17. kesäkuuta 2026 — 64-bittinen ZIP
Muutosloki
The headline feature is the optional localization of the interactive help screen, selected from the standard POSIX locale
environment variables (LC_ALL > LC_MESSAGES > LANG). English remains the default; Japanese
(ja) is now available for UTF-8 locales and locales without an explicit codeset, e.g. LANG=ja_JP.UTF-8 dua i.
Bug Fixes
- Make message color yellow, instead of red.
It's less alarming, red should only be used to signal 'danger'.
- don't show unapplicable global options in config subcommand.

New Features
- add config show-default sub-command with option to reset configuration file
Add dua config show-default to print the current built-in default
configuration, making newly introduced configuration keys discoverable without
opening the editor.
Support dua config show-default --overwrite-with-default to overwrite the active configuration
file with the built-in defaults while keeping stdout reserved for the default
TOML content.
- allow to set the format in the configuration file.
- optional i18n for the interactive help screen
Localize the interactive help pane via the standard POSIX locale
environment variables, honoring the usual precedence
LC_ALL > LC_MESSAGES > LANG, with English as the default. Japanese is
the first added translation. No new dependencies; only the help screen
is translated.
- New i18n module: a Language enum, env detection split into a pure
detect() plus a thin from_env(), and an EN/JA translation table.
- The help pane resolves the language with Language::from_env() when it
is rendered (only while the pane is open).
- Key names, the ^ continuation markers and the symbolic legend stay
untranslated; the block title is localized.

Commit Statistics
- 11 commits contributed to the release.
- 5 commits were understood as conventional.
- 1 unique issue was worked on: #336

Commit Details
view details
- #336
- Don't show unapplicable global options in config subcommand. (d02a65e)
- Uncategorized
- Merge pull request #339 from Byron/fix-336 (9975c07)
- Make message color yellow, instead of red. (08bda9f)
- Address auto-review (e5627c0)
- Add config show-default sub-command with option to reset configuration file (db3e267)
- Allow to set the format in the configuration file. (c1a759f)
- Merge pull request #334 from bellsmarket/feat/help-i18n (c171b44)
- Address auto-review comments (e180b1f)
- Review (71f4532)
- Optional i18n for the interactive help screen (e902598)
- Merge pull request #333 from xfocus3/fix/install-respects-cargo-home-279 (d4f5671)
2.35.0 16. kesäkuuta 2026 — 64-bittinen ZIP
Muutosloki
New Features
- Add gitignore-aware cleanup marking
Ignored files and directories are detected from the repository’s ignore rules, including .gitignore. Git-ignored entries are shown dimmed in the entries list.
Press I to mark all currently visible Git-ignored entries, or i to disable Git support.
Ignored directories are handled recursively: if a directory such as target/ is ignored, entries shown after entering that directory are treated as ignored as well.
Git-ignored entries are separate from built-in cleanup candidates. An entry can be both Git-ignored and a cleanup candidate; in that case, both visual styles apply.
- add dua i --once[="keys"] to make it easier to debug interactive mode in the real.
Run interactive mode once, print the final TUI to the main terminal screen, then exit.
dua i --once
dua i --once=<keys>
<keys> is optional. Each character is replayed after traversal finishes:
dua i --once=jko
Acts like pressing j, k, then o.
Because --once does not use the alternate screen, the output stays visible in scrollback.
- add interactive cleanup candidate marking with X
Interactive mode can now highlight and select common cleanup directories in the current view with shift + X.
When browsing a directory, dua detects existing directories with well-known cleanup names, including:
- target
- node_modules
- __pycache__
- .pytest_cache
- .mypy_cache
- .ruff_cache
- .tox
- .venv
- venv
Press X to mark all detected cleanup candidates in the current directory.
The marked entries then appear in the mark pane, where they can be reviewed before using the existing delete or trash actions.
Cleanup detection is intentionally conservative. Ambiguous names such as build and dist are not selected automatically.
- cycle modified time display modes
Users can now enable the modified-time column without changing the current sort:
1. Press M while sorting by size, count, or name.
2. The modified-time column is shown.
3. Press M again to hide it.
To sort by modified time:
1. Press m to sort by mtime descending.
2. Press m again to sort by mtime ascending.
3. Press M while mtime sorting is active to cycle the mtime strategy:
- normal entry mtime
- newest descendant mtime
- oldest descendant mtime
The selected mtime strategy is preserved when toggling between ascending and descending mtime sort.

Commit Statistics
- 6 commits contributed to the release.
- 4 commits were understood as conventional.
- 2 unique issues were worked on: #328, #331

Commit Details
view details
- #328
- Add interactive cleanup candidate marking with X (cb11cac)
- #331
- Cycle modified time display modes (5991f98)
- Uncategorized
- Merge pull request #338 from Byron/auto-clean (7c31299)
- Add gitignore-aware cleanup marking (a346eff)
- Add dua i --once[="keys"] to make it easier to debug interactive mode in the real. (a6482de)
- Merge pull request #337 from Byron/recursive-mod-date (99840d0)
2.34.0 20. helmikuuta 2026 — 64-bittinen ZIP
Muutosloki
This upcoming release improves day-to-day usability with a new configuration file.
For users, the main additions are:
- A persistent configuration file for dua with keyboard settings under [keys].
- A new dua config edit command to open the configuration in $EDITOR.
- Automatic creation of the configuration directory/file with sensible defaults when editing for the first time.
Configuration defaults and behavior in this release:
- keys.esc_navigates_back now defaults to true. This is a change from previous versions where it was false implicitly.
You are welcome to contribute more settings as you see fit.
Chore
- Replace simplelog with fern and jiff for timestamped logging
Note that this changes the log format from
04:41:37 [INFO]
to
[2026-02-06 05:41:32.146 +01:00 INFO src/main.rs:55]
New Features
- add dua configuration file, with setting for ESC going back only.
Bug Fixes
- outdated link to NixOS package search
Channel 23.11 was for Nov. 2023.
This update removes explicitly specifying a channel in the query, defaulting to the current latest stable NixOS nixpkgs channel (at the time of writing 25.11
Refactor
- remove crosstermion and tui-react dependencies
Commit Statistics
- 17 commits contributed to the release over the course of 45 calendar days.
- 45 days passed between releases.
- 4 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #320 from tonisives/feat/disable-esc (9d2fac5)
- Prepare changelog for upcoming release (9496afe)
- Refactor (f275703)
- Apply suggestions from Copilot code review (fd3468b)
- Add dua configuration file, with setting for ESC going back only. (c72cb52)
- Merge pull request #318 from Byron/copilot/remove-crosstermion-tui-react (7480277)
- Remove crosstermion and tui-react dependencies (a1aaaa5)
- Merge pull request #317 from musicinmybrain/no-atty (6c0203c)
- Replace atty with standard-library functionality (since Rust 1.70) (31aaa0c)
- Merge pull request #315 from Byron/copilot/switch-time-crate-to-jiff (017e716)
- Refactor (60812a2)
- Replace simplelog with fern and jiff for timestamped logging (3dc120f)
- Merge pull request #314 from Byron/dependabot/cargo/time-0.3.47 (2cb64fb)
- Bump time from 0.3.44 to 0.3.47 (5980a79)
- Merge pull request #313 from Quoteme/patch-1 (abe15b2)
- Outdated link to NixOS package search (c7def68)
- Cargo fmt (d8db05a)
2.33.0 5. tammikuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
New Features
- Add environment variable support for all global arguments
- DUA_THREADS → --threads
- DUA_FORMAT → --format
- DUA_APPARENT_SIZE → --apparent-size
- DUA_COUNT_HARD_LINKS → --count-hard-links
- DUA_STAY_ON_FILESYSTEM → --stay-on-filesystem
- DUA_IGNORE_DIRS → --ignore-dirs
- DUA_LOG_FILE → --log-file
- Mark shared arguments as global for general accessibility
- Added global = true to all arguments shared between aggregate and interactive subcommands
- Removed duplicate input fields from Interactive and Aggregate subcommands
- Updated main.rs to use opt.input instead of subcommand-specific input
- Global arguments now work with both subcommands and can be specified before or after the subcommand
Commit Statistics
- 10 commits contributed to the release over the course of 64 calendar days.
- 69 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #309 from Byron/copilot/add-env-support-global-arguments (72f149c)
- Add environment variable support for all global arguments (85c7c72)
- Merge pull request #307 from Byron/copilot/mark-global-arguments-in-clap (a2973a6)
- Mark shared arguments as global for general accessibility (2f720cf)
- Merge pull request #300 from drkane/drkane-patch-1 (8570c15)
- Add winget instructions to readme - fixes issue #282 (ec159b6)
- Merge pull request #298 from Byron/updates (4bb7ebd)
- Cargo update (1a38653)
- Cargo fmt (38d985e)
- Upgrade the rustc version and switch to edition 2024 (ccd0b74)
2.32.2 28. lokakuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Bug Fixes
- don't let 'q' quit instantly if it's still collecting files.
Commit Statistics
- 1 commit contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Don't let 'q' quit instantly if it's still collecting files. (847af46)
2.32.1 28. lokakuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
'q' to quit is now more usable as it will insta-quit if the traversal took less than 10s and
if nothing is still marked for deletion.
This makes it easy to use in 'quick-view' scenarios.
Bug Fixes
- instantly quit when no items marked for deletion
Commit Statistics
- 6 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Prepare next release changelog (fb8571f)
- Merge pull request #297 from Byron/copilot/fix-instant-quit-on-q (938ae33)
- Only quit immediately if the traversal didn't take too long. (7f27170)
- Update dependencies (d0f66d6)
- Refactor (b710cb1)
- Instantly quit when no items marked for deletion (d769de9)
2.32.0 15. syyskuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
New Features
- Ctrl+f in the glob prompt now toggles the mode from case-insensitive to sensitive.
Commit Statistics
- 4 commits contributed to the release over the course of 43 calendar days.
- 43 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #293 from Byron/copilot/fix-2a5bb691-5ca0-4cf5-af1c-895f4fcb1f06 (91bc45d)
- Ctrl+f in the glob prompt now toggles the mode from case-insensitive to sensitive. (bbe368f)
- Implement case-sensitive glob search with '^f' shortcut (32ab50f)
- See if the windows-2022 image will work for us. (7abf86a)
2.30.1 10. toukokuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
2.30.0 27. tammikuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
New Features
- allow sorting by name in interactive mode
Bug Fixes
- formatting in src/interactive/app/handlers.rs
- on MacOS use only 3 threads by default.
Otherwise, it would get very slow and the difference is enormous.
16 threads for example take 4.1s on a workload, whereas this only takes
550ms with 3 threads.
Style
- simplify some statements for readability
Commit Statistics
- 9 commits contributed to the release over the course of 55 calendar days.
- 84 days passed between releases.
- 4 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Thanks Clippy
Clippy helped 1 time to make code idiomatic.Commit Details
- Uncategorized
- Merge pull request #275 from joehasson/feat/interactive-mode-sort-by-name (364f732)
- Thanks clippy (092a6c5)
- Allow sorting by name in interactive mode (73224e6)
- Merge pull request #274 from musicinmybrain/petgraph0.7 (14a276e)
- Update petgraph to 0.7 (b83a2f6)
- Merge pull request #271 from hamirmahal/style/simplify-some-statements-for-readability (3bc25bd)
- Formatting in src/interactive/app/handlers.rs (0a4d09e)
- Simplify some statements for readability (c1dc1b2)
- On MacOS use only 3 threads by default. (8933be4)
2.29.2 10. elokuuta 2024 — 64-bittinen ZIP32-bittinen ZIP

Suosituin kategoriassa Levy- ja USB-työkalut

Näytä kaikki
  1. RufusLevy- ja USB-työkalut · pbatard
  2. VentoyLevy- ja USB-työkalut · Ventoy
  3. unetbootinLevy- ja USB-työkalut · unetbootin Team
  4. smartmontoolsLevy- ja USB-työkalut · smartmontools.org
  5. gduLevy- ja USB-työkalut · Daniel Milde
  6. WinFsp 2024 Beta2Levy- ja USB-työkalut · Navimatics LLC
  7. GSmartControlLevy- ja USB-työkalut · Alexander Shaduri
  8. DefragglerLevy- ja USB-työkalut · Piriform
  9. SquirrelDiskLevy- ja USB-työkalut · squirreldisk
  10. dufLevy- ja USB-työkalut · Christian Muehlhaeuser

Tunnisteet

Jaa