cfv is a utility to both test and create .sfv (Simple File Verify), .csv, .crc, .md5(sfv style), md5sum, BSD md5, sha1sum, and .torrent checksum verification files. It also includes test-only support for .par and .par2 files. These files are commonly used to ensure the correct retrieval or storage of data.
| Tags | Communications File Sharing Archiving Utilities |
|---|---|
| Licenses | GPL |
| Operating Systems | Windows Windows OS Independent POSIX Linux Mac OS X |
| Implementation | Python |
Recent releases


Changes: This release fixes Python 2.6 MD5 and SHA module deprecation warnings.


Changes: Help output is printed to stdout under non-error conditions. A mmap file descriptor leak in Python 2.4.2 was worked around. The different module layout of BitTorrent 5.x is supported. A "struct integer overflow masking is deprecated" warning was fixed. The --private_torrent flag was added. A bug was worked around in 64-bit Python version 2.5 and later which causes checksums of files larger than 4GB to be incorrectly calculated when using mmap.


Changes: This release includes fixes for progress meter with non- regular files. The list of checksum types in --help output is now sorted, and -t help (or -t with unknown type) prints a list of the supported types, with descriptions.


Changes: This release adds .torrent creation support, and makes torrent testing automatically strip the top path component if needed. It fixes an mmap error on large files, a too many open files error on large torrents, bad file renaming with .torrent files on Windows, and a TypeError that occurred if forcing --progress=yes when not running on a TTY and the COLUMNS var was set. sha1sum file support has been added.


Changes: This release adds an -s option to search for misnamed files, handles .torrent files that have the creation date encoded as a string, handles .torrent files that specify the filename encoding, makes .torrent support try the BitTornado module if BitTorrent isn't found, fixes exceptions when trying to print Unicode filenames containing non-ASCII characters, and fixes some minor issues in --strippaths, filename unquoting, and CSV parsing.
Adds fixed width file support to IReport Designer / Jasper Reports.
- All comments
Recent commentsRe: Python?
timecop is a flaming idiot, 'nuff said.
Thanks for this app, will give it a try, it seems to do everything I am wanting it to do.
Re: Great Tool
> By far the best checksum program I have
> seen so far. Lots
> of options, therefore in the first
> moment a little bit hard to
> use, but useful features...
>
>
Yep, I'll second that. It does pretty much everything I was looking for, and seems to be by far the most comprehensive text-based tool of its kind. I wish I'd discovered it sooner, instead of wrangling with the coreutils md5sum.
Great Tool
By far the best checksum program I have seen so far. Lots
of options, therefore in the first moment a little bit hard to
use, but useful features...
Re: Python?
Timecop is definitely a troll, and Python is great for user
interface programs. I appreciate that you have made your
work available.
Re: Python?
>
> % Python is already included on
> most/all
> % distros.
>
> I've never seen python installed on
> any machines that *I* use.
I'm not talking about whatever minimalistic stuff you have on your machines, but the average install.
> Really? So reading byte by byte and
> calling CRC32 functions on that is
> "not slower" than for example,
> mmap()'ing the file and running CRC32 on
> the entire file? Oh, did I mention we
> are using Python here?
I know you love trolling timecop, but if you would just look, you would see that in fact it does not read byte by byte.
It either: a) uses the fchksum C module to get crc for the entire file in one call, b) mmaps the file and uses zlib C module to get crc of entire file in one call, or c) if neither mmap or fchksum is available (maybe some weird arch without mmap) it will read in 64K chunks and crc them. So yes, it is in fact not slower _at all_.
> Python? Get real. Nobody used Python
> for anything other than random hacks or
> things that nobody will ever want to
> maintain.
And C is just _so_ much more maintainable.. riiiight.