Skip to content

Mullion FileMan & folder-tools

A small C++17 suite of folder-management tools plus mullion-fileman, a Norton Commander-style dual-pane TUI that drives them. The CLI tools are dependency-free standalone executables sharing a common core (recursive scanning, multi-core parallelism, a progress bar with ETA, CSV reports). mullion-fileman adds FTXUI (MIT).

Runs on Windows, macOS, and Linux.

mullion-fileman — the dual-pane TUI

The tools

Tool What it does
folder_parity Compare two folder trees, report differences to CSV, optionally sync
folder_clean Find and remove OS junk (.DS_Store, ._*, Thumbs.db, …)
folder_copy / folder_move / folder_delete Recursive, multi-threaded copy / move·rename / delete
folder_view Print a file as text or a hex dump
folder_find Find files by name, content, size, or age
mullion-fileman Dual-pane TUI front-end for everything above

Quick start

# Windows: build all CLI tools (auto-detects MSVC / MinGW / Clang)
.\build.ps1
# the mullion-fileman TUI (fetches FTXUI via CMake)
.\build-mullion-fileman.bat

# macOS / Linux
./build.sh
cmake -B build && cmake --build build      # includes mullion-fileman
# Compare two trees by content, using all cores, ignoring OS junk
folder_parity "J:\Photos" "I:\Photos" --hash --jobs -1 --ignore-system -o report.csv

# Browse interactively
mullion-fileman "J:\Photos" "I:\Photos"

See Building for details and the per-tool pages for full options. Licensed under MIT.

Design

  • Standalone first. Every capability is a CLI tool you can script; mullion-fileman is only a front-end and never the sole entry point.
  • Shared core in include/parity.hpp (scanning, FNV-1a hashing, diff, parallelFor, filters, UTF-8 path keys) — pure and unit-tested.
  • Safe by default. folder_clean and folder_delete are dry-run unless you pass --delete / --force; folder_parity never deletes.
  • UTF-8 everywhere so non-ASCII names (accents, CJK, emoji) never abort a scan.