← 全部工具

NeilJustice/FileRevisor

热度 75 更新于 开发与构建

FileRevisor is a C++ command line program for quickly deleting large directories in parallel, renaming files and directories, and replacing text in text files.

githubauto-collected

安装

暂未验证可直接使用的安装命令,请查看项目官方文档或 Release。

<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:

![delete-directory](Screenshots/Linux/delete-directory.png)

### 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-files](Screenshots/Linux/rename-files.png)

### 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:

![rename-directories](Screenshots/Linux/rename-directories.png)

### 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:

![replace-text](Screenshots/Linux/replace-text.png)

### Linux FileRevisor parallel directory deletion performance

![Linux Directory Deletion Performance: rm -rf > /dev/null vs. FileRevisor](Screenshots/LinuxFileRevisorPerformanceGraph.png)

### Windows FileRevisor parallel folder deletion performance

As 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.