A small program that recursively checksums files in a given directory. Can work with any algorithm provided by Java. Compiled in a format used by the GNU Coreutils checksum digests for checking.
A progress bar is shown for every file, so big files don't look as if the program hung.
Use -h
or --help
to see basic usage and -V
or --version
to check the version.
List was generated by my computer, but the major entries should be in whatever JRE you have too.
- MD2
- MD5
- SHA
- SHA-224
- SHA-256
- SHA3-256
- SHA3-384
- SHA3-512
- SHA-384
- SHA-512
- SHA-512/224
- SHA-512/256
Calculating checksums for all files within the Documents
directory and subdirectories and outputting the list to the Checksums
folder with verbose console printing and using the SHA-1 algorithm:
java -jar path_checksum.jar -p ~/Documents -a sha1 -e ~/Checksums -v
Checking the saved list against the current files:
java -jar path_checksum.jar -p ~/Checksums/Documents.sha1 -a sha1
Can also work on big files:
java -jar path_checksum.jar -p ~/Downloads/archive.7z -a sha-512 -v -e ~/Downloads/archive.7z.sum
Report any found bugs to this repo.
(Fixed by updating version to 0.9.5)ProgressBar
/ProgressBarBuilder
has trouble properly displaying sizes larger than 2047 MB (just shy of 2 GB), so it just displays either that or 1 GB. Appears to be an issue with using theProgressBar.wrap(InputStream, ProgressBarBuilder)
factory, may have to take it with them.
- Option to use purely ASCII progress bars, in case the user's terminal doesn't support ANSI.
- Option to disable progress bars altogether, where undesired or don't work properly.
- An
--exclude
parameter to exclude certain files or directories so the user doesn't have to do more manual work.
Apache Commons CLI - https://github.com/apache/commons-cli(No longer used as of v2.0.0r)- picocli - https://github.com/remkop/picocli (Replaced Apache Commons CLI as of v2.0.0r)
- progressbar - https://github.com/ctongfei/progressbar
- UFFRUtil - (not yet published, but used methods should be self-explanatory) (included as of v2.0.0r)