Skip to main content
Toollyz

Search tools

Search for a command to run...

Duplicate File Name Cleaner

Paste a list of file names to find duplicates and generate a rename plan with configurable counter patterns. Case + extension-aware grouping, side-by-side diff and TSV export. 100% private.

What is the Duplicate File Name Cleaner?

Duplicate File Name Cleaner takes any newline-separated list of file names — Finder selection, `ls -1` output, a download-folder dump, CSV export — and surfaces every name collision. It groups duplicates case-insensitively by default (so 'Photo.PNG' and 'photo.png' match), with an option to also ignore the extension (so 'foo.png' and 'foo.jpg' match). For every duplicate, the engine suggests a unique alternative using one of four counter patterns: parenthesised (`name (2).ext`), dashed (`name-2.ext`), underscored (`name_2.ext`) or zero-padded (`name_002.ext`). The first occurrence keeps its original name; copies get the counter. A collision-aware loop bumps the counter until uniqueness is achieved, so if your list already contains 'foo (2).png', the second 'foo.png' becomes 'foo (3).png' automatically. Side-by-side rename plan, original ↔ suggested view, and TSV export ready for `mv` scripts or a spreadsheet. Pure functions, no upload.

How to use it

  1. Paste a list of file names — one per line.
  2. Pick a rename pattern: 'name (2).ext', 'name-2.ext', 'name_2.ext' or zero-padded.
  3. Toggle case-insensitive and ignore-extension as your situation needs.
  4. Copy the suggested unique list or download a side-by-side TSV rename plan.

Benefits

  • Four rename patterns — paren, dash, underscore, zero-padded — covering Windows / macOS / Linux conventions.
  • Case-insensitive grouping (default) — Photo.PNG and photo.png collapse to the same name.
  • Ignore-extension option — foo.png and foo.jpg treated as the same name (useful for sorting media).
  • Collision-aware counter: re-bumps when a suggested name already exists in the input.
  • Configurable counter start (default 2, the macOS convention) and zero-padding (1-6 digits).
  • Side-by-side rename plan with 'show only renamed' filter.
  • TSV export ready for `mv` scripts or paste into a spreadsheet.
  • Runs 100% in your browser — file lists never leave the device.

Frequently asked questions

What's the difference vs Duplicate Line Remover?

Duplicate Line Remover deletes duplicate lines. This tool keeps them all but suggests unique alternatives via a counter suffix — that's what you want when each line is a file you need to keep but can't have name conflicts.

Why is the first occurrence not renamed?

macOS / Windows / Linux all leave the first file untouched and rename only the copies. We follow that convention. To override, change 'Start counter at' to 1 (the first will be renamed too).

What does 'ignore extension' actually do?

Without it, 'foo.png' and 'foo.jpg' are distinct names — no rename. With it, they're considered the same base name and one is renamed to 'foo (2).jpg' (or similar). Useful when sorting media where the extension varies but the content is the same.

What if my list already has 'foo (2).png' in it?

The tool detects the collision and bumps the counter — your second 'foo.png' becomes 'foo (3).png' or higher until a unique name is found.

Can I use this with macOS/Linux `mv` to actually rename?

Download the TSV, paste into a shell loop like: `while IFS=$'\t' read orig new _; do mv -i "$orig" "$new"; done < rename-plan.tsv`. Always use `mv -i` (interactive) to confirm overwrites.

Does the counter start at 2 or 1?

Default is 2 (the macOS/Windows convention). The first file keeps its original name; the second becomes 'name (2).ext'. Set 'Start counter at 1' to bump every duplicate.

What about hidden dot-files like .bashrc?

We treat dot-files as having no extension. Two '.bashrc' entries collapse to '.bashrc' and '.bashrc (2)'.

Is this case-sensitive on Linux?

Linux filesystems are case-sensitive — 'Photo.PNG' and 'photo.png' really are different files. Turn off 'case-insensitive' if your destination is Linux.

Will it suggest counters for dot-files like '.env'?

Yes — '.env' (2) is the suggestion, which keeps the dot prefix and the lack of extension. Some filesystems treat dot-prefixed names specially; the rename plan is your guide, not a final decision.

Can it group by content rather than name?

No — this tool sees only names. For content-based dedupe, use a tool like `fdupes` or `rmlint` that reads file contents.

Is anything uploaded?

No. Tokenising, grouping and rename suggestions run entirely in your browser.