Breaking changes:
--dupes-only is no longer a NUL-delimited output format. It is now a
selection modifier: it drops the original from each duplicate group and renders
the remaining copies in the usual tree layout. The flat, NUL-delimited path
list moved to a new format flag, --print0 (-0), mirroring find -print0.
The old xargs -0 pipeline becomes fifi --dupes-only --print0 … | xargs -0 rm.
--unique now replaces the output instead of appending to it: it lists the
files whose content has no match anywhere across the scanned paths, instead of
the duplicate groups. It works with the text, --print0, and --json formats,
and conflicts with --dupes-only and --summary. In --json the document
omits the duplicates array under --unique (the statistics block still
reports the duplicate counts).
New:
--order-by <age|source> chooses how members within a duplicate group are
ordered. age (default) keeps the oldest as the original; source ignores age
and orders by the scan root — the command-line path argument each file was
found under. fifi --order-by source --dupes-only --print0 orig backup | xargs -0 rm prunes the copies under backup while keeping their counterparts under
orig.
See CHANGELOG.md for the full entry.