fsf
is a high-performance C++20 command-line tool designed to compare files across multiple directories. It provides flexible file comparison modes, performance measurement, and detailed reporting.
-
Multiple comparison modes
all
: Compare all filesdifferent
: Show only different filessame
: Show only identical filesunique
: Show unique files
-
Performance measurement
-
Concurrent file processing
-
MD5-based file comparison
-
Automatic time logging
-
Supports multiple directories
- C++20 compatible compiler (GCC 10+)
- CMake 3.10+
- OpenSSL development libraries
On Ubuntu/Debian:
sudo apt-get update
sudo apt-get install build-essential cmake libssl-dev
On macOS (using Homebrew):
brew install cmake openssl
# Clone the repository
git clone <repository-url>
cd fsf
# Build the project (optional)
mkdir build
cd build
cmake ..
make
# Compare files in two directories
./fsf same dir1 dir2
# Compare files in multiple directories
./fsf all dir1 dir2 dir3
# Show help
./fsf --help
# Run comparison 10 times
./fsf same -r 10 dir1 dir2
all
: Show all file comparisonsdifferent
: Show only files that differsame
: Show only identical filesunique
: Show files unique to specific directories
The tool generates detailed output about file similarities and can log performance metrics to time-times.txt
.
Each run can be logged with:
- Timestamp
- Number of repetitions
- Mean execution time
- Standard deviation
- Comparison mode
- Directories compared
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT.