Guide · developer tools
The best CLI file organizers for developers in 2025.
Honest comparison of command-line file organizers: fdupes, rmlint, organize-tool, and FileMayor. When to use each and which is safest for bulk operations.
2026.06.03 · 8 min read
The case for CLI tools
Developers tend to live in the terminal. A GUI file organizer that requires clicking through dialogs feels like the wrong shape for the problem, especially when the problem is “I have 40,000 files that need sorting and I want to script it.”
CLI file organizers vary significantly in what they actually do. Some focus exclusively on finding duplicates. Some handle renaming. Some build elaborate rules engines. And some treat the whole thing as a planning problem: figure out what should happen first, show it to the user, then apply it safely.
Here is an honest breakdown of the tools worth knowing, with honest tradeoffs for each.
Tool-by-tool breakdown
fdupes
fdupes is the old reliable for duplicate detection on Linux and macOS. It recursively scans a directory, identifies files with identical content by comparing checksums, and presents the groups. You decide what to delete.
It is fast, small, and does one thing well. The limitation is exactly that — it only does one thing. fdupes will not sort files by type, will not archive old items, and will not rename anything. It is a diagnostic, not an organiser. Pipe its output into a shell script if you want to act on what it finds.
- Best for: quick duplicate audits on Linux, scripting into larger pipelines.
- Not for: anything beyond finding duplicates.
rmlint
rmlint is faster than fdupes and handles more than just exact duplicates — it also finds bad symlinks, empty directories, and files that are merely similar rather than identical. Its output is a shell script you review and run, which is a reasonable safety model.
The concern with rmlint for large operations is that “review the generated shell script” is a higher bar than it sounds when the script has thousands of lines. There is no undo built in. If you run the script and something was wrong, you are reconstructing from whatever backup you have.
- Best for: power users on Linux who are comfortable auditing generated shell scripts.
- Not for: anyone who wants a built-in undo or is uncomfortable reading long shell output.
organize-tool
organize-tool is a Python CLI that lets you write YAML rules describing how files should be sorted. Rules match on filename, extension, date, content, and more. It has a dry-run mode, which is a genuine safety feature: you can see what it would do before it does anything.
The rules-based model is powerful but requires upfront investment. You write a configuration file, test it, iterate. Cross-platform (Windows, macOS, Linux). No built-in undo, but dry-run covers most of the “did I get the rules right” concern before you commit.
- Best for: developers comfortable with YAML config who want fine-grained, repeatable rules.
- Not for: one-off bulk cleanups where you do not want to maintain a rules file long-term.
FileMayor
FileMayor takes a different approach: instead of rules you write, it generates a plan from your intent. You run filemayor cure ~/Downloads --prompt "sort by type, archive anything older than 6 months", and it returns a structured plan. Nothing moves until you approve it. When you apply, every operation is journaled and filemayor undo --all reverses the entire session.
The CLI has 14 commands covering scanning, duplicate detection, deduplication, archiving, watching, and more. Every command supports --json for scripting. It runs on macOS, Windows, and Linux, and exposes an MCP server so AI assistants can drive it programmatically.
- Best for: bulk operations where you want AI planning, a review step, and the safety net of a full session undo.
- Not for: users who need complex IF/THEN rule logic or want a pure Unix-philosophy tool with no AI dependency.
Safety considerations
The key question with any bulk file operation is: what happens when it gets something wrong? Because it will get something wrong eventually — the filename pattern matches something it should not, the archive heuristic is too aggressive, a duplicate detection hash collision hits in a situation you did not anticipate.
Most CLI tools tell you what they did. FileMayor shows you what it's going to do first.
fdupes and rmlint have no built-in undo. organize-tool has dry-run but no rollback after the fact. FileMayor journals every operation before executing it, which means undo is always available regardless of what went wrong.
For operations on important directories — a photo library, a project archive, a client deliverables folder — the presence or absence of a reliable undo mechanism should weigh heavily in your choice of tool.
When to use each
- Quick duplicate audit on Linux → fdupes or rmlint.
- Rules-based automation with a YAML config you maintain → organize-tool.
- Bulk cleanup with AI planning and a session undo → FileMayor.
- Ongoing folder watching with a natural-language policy → FileMayor Pro.
These tools are not mutually exclusive. fdupes for a quick scan, then FileMayor for the actual cleanup session, is a reasonable workflow. The right tool for each job is still the right tool even when another tool does more.
If you want to try FileMayor on your next cleanup session, it installs in one command →