<p align="center" <img src="Screenshots/FileRevisorLogo.png" width="64%"<br </p
|Build Type|Build Status| |----------|------------| |Clang 18 and GCC 13 on ubuntu-latest|<a href="https://github.com/NeilJustice/FileRevisor/actions/workflows/linuxbuild.yml"<img src="https://github.com/NeilJustice/FileRevisor/actions/workflows/linuxbuild.yml/badge.svg"</a| |VS2026 on windows-2025-vs2026|<a href="https://github.com/NeilJustice/FileRevisor/actions/workflows/windowsbuild.yml"<img src="https://github.com/NeilJustice/FileRevisor/actions/workflows/windowsbuild.yml/badge.svg"</a| |GCC lcov code coverage|<a href="https://codecov.io/gh/NeilJustice/FileRevisor"<img src="https://codecov.io/gh/NeilJustice/FileRevisor/graph/badge.svg?token=goCObzAYXP"</a|
FileRevisor is a C++ command line program for quickly deleting large directories in parallel, bulk renaming files and directories, and bulk replacing text in files.
- FileRevisor command line usage
- FileRevisor program modes
- delete-directory
- rename-files
- rename-directories
- replace-text
- Linux FileRevisor parallel directory deletion performance
- Windows FileRevisor parallel folder deletion performance
- Steps to build binary filerevisor on Linux with Clang
- Steps to build FileRevisor.exe on Windows with Visual Studio 2026
- Acknowledgements
FileRevisor command line usage
FileRevisor v1.1.0
Deletes directories, renames files or directories, or replaces text in files.
Usage:
filerevisor delete-directory
--target=<TargetDirectory>
[--contents-only]
[--parallel]
[--skip-files-in-use]
[--dryrun]
[--quiet]
filerevisor rename-files--from=<FileNameSubstring --to=<FileNameSubstring [--recurse] [--dryrun] [--verbose] filerevisor rename-directories --target=<TargetDirectory --from=<DirectoryNameSubstring --to=<DirectoryNameSubstring [--recurse] [--dryrun] [--verbose] filerevisor replace-text --target=<TargetDirectory --from=<TextSubstring --to=<ReplacementTextSubstring [--recurse] [--dryrun] [--verbose]
## FileRevisor program modes
### delete-directory
filerevisor delete-directory --target=<TargetDirectoryPath [--parallel] [--skip-files-in-use] [--dryrun] [--quiet]
FileRevisor `delete-directory` mode quickly deletes all files in and below `--target=<TargetDirectoryPath>`. For extreme directory deletion performance, especially on Windows, specify `--parallel` to delete subdirectories below `TargetDirectoryPath` using one thread per subdirectory.
Here is `filerevisor delete-directory` in action:

### rename-files
filerevisor rename-files --target=<TargetDirectoryPath --from=<FileNameRegex --to=<FileNameRegex [--recurse] [--dryrun] [--verbose]
FileRevisor `rename-files` mode renames files in a specified directory matching a specified regular expression. `--recurse` can be specified to rename files in and below a specified directory.
Here is `filerevisor rename-files` in action:

### rename-directories
filerevisor rename-directories --target=<TargetDirectoryPath --from=<DirectoryNameRegex --to=<DirectoryNameRegex [--recurse] [--dryrun] [--verbose]
FileRevisor `rename-directories` mode renames directories in a specified directory matching a specified regular expression. `--recurse` can be specified to rename directories in and below a specified directory.
Here is `filerevisor rename-directories` in action:

### replace-text
filerevisor replace-text --target=<TargetDirectoryPath --from=<LiteralFileText --to=<ReplacementLiteralFileText [--recurse] [--dryrun] [--verbose]
FileRevisor `replace-text` mode replaces text in files containing a substring with a replacement substring. `--recurse` can be added to replace text in files in and below a specified directory.
Here is `filerevisor replace-text` in action:

### Linux FileRevisor parallel directory deletion performance

### Windows FileRevisor parallel folder deletion performanceAs you can see from the above two graphs, Linux file deletions are quite a bit faster than Windows file deletions, with modest time savings available on Linux and massive time savings available on Windows by way of FileRevisor --parallel directory deletion.