{"id":17922489,"url":"https://github.com/gierens/recmd5","last_synced_at":"2026-01-20T22:03:20.760Z","repository":{"id":140300935,"uuid":"463351788","full_name":"gierens/recmd5","owner":"gierens","description":"Script to create and update MD5 checksums for all files in a directory.","archived":false,"fork":false,"pushed_at":"2022-02-25T15:43:25.000Z","size":3140,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-22T22:11:09.568Z","etag":null,"topics":["bash","bash-script","checksum","checksum-generation","checksumming","file-integrity","file-integrity-management","files","md5"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gierens.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-25T01:03:47.000Z","updated_at":"2022-02-26T12:03:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"c310ea08-c79f-471e-ac5f-1e1c26026b03","html_url":"https://github.com/gierens/recmd5","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gierens/recmd5","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gierens%2Frecmd5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gierens%2Frecmd5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gierens%2Frecmd5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gierens%2Frecmd5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gierens","download_url":"https://codeload.github.com/gierens/recmd5/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gierens%2Frecmd5/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28615564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T21:52:42.722Z","status":"ssl_error","status_checked_at":"2026-01-20T21:52:20.513Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","bash-script","checksum","checksum-generation","checksumming","file-integrity","file-integrity-management","files","md5"],"created_at":"2024-10-28T20:39:23.948Z","updated_at":"2026-01-20T22:03:20.746Z","avatar_url":"https://github.com/gierens.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RecMD5\n\nRecMD5 stands for \"recursive MD5\" and it is a script to create and update\nMD5 checksums for all files in a directory and in its subdirectories. Its\npurpose is data integrity validation of all sorts of file structures where git\nis unsuitable, like a large movie library. It stores the checksums in a file\nright in the top-level directory to make it as simple and portable as possible.\nThere is no configuration needed nor are there any dependencies or a complex\nsetup.\n\n![RecMD5 Demonstration](recmd5.gif)\n\n## Installation\nFirst go to the cloned repository.\n```bash\ncd recmd5\n```\nThere are multiple options how to install the script. Two of those are:\n\n### Via Symlink\nCreate a symbolic link to the shell script in a binary folder:\n```bash\nsudo ln -s \"$(pwd)/recmd5.sh\" /usr/local/bin/recmd5\n```\n\n### As Alias\nOr create a BASH alias in your `.bashrc` or `.bash_aliases`:\n```bash\necho \"alias recmd5='$(pwd)/recmd5.sh'\" \u003e\u003e ~/.bashrc\n```\nIn this case you could also shorten the check command with:\n```bash\necho \"alias chkmd5='md5sum --check checksums.md5 --quiet'\" \u003e\u003e ~/.bashrc\n```\n\n## Usage\nTo generate the checksum list for some file structure, go to the top-level\ndirectory and execute:\n```bash\nrecmd5\n```\nThis will create a file named `checksums.md5` in the top-level directory. When\nyou add new files and execute this again, only the new checksums will be\nadded to the list. When executing after deleting some files you will be asked\nif you want to remove their checksums as well.\n\nFor checking the validity of your data use:\n```bash\nmd5sum -c checksums.md5\n```\nin the top-level directory. Use the `--quiet` option for skipping output for\nvalid files or use the alias `chkmd5` suggested above.\n\nWhen you update files you will have to remove their checksums manually from\n`checksums.md5` and execute the program again.\n\n## FAQ\n\n### Why MD5?\nYou might have heard that MD5 is not secure and you should use stronger\nalgorithms like SHA256 or SHA512. This is correct for cryptographic purposes\nbut for file integrity checks MD5 is still totally fine.\n\nIt is also a lot faster than SHA algorithms which is a big advantage when using\nthis on large files like movies.\n\n### Are there alternatives?\n[RHash](https://github.com/rhash/RHash) offers basically the same\nfunctionality but implements it directly in C. This might make it a little\nfaster at times, but depending on your distribution it might also be a tiny\nbit more difficult to install. RecMD5 as below 100 line BASH script aims for\nmaximum simplicity, deployability and portability.\n\n### Aren't there filesystems doing checksumming?\nYes, ZFS for example does a blocklevel checksumming which is a really cool\nfeature. But you still might want an additional layer of integrity validation\nwhere you have more control. Also does a filesystem-internal checksumming not\nhelp you when you migrate data between filesystems.\n\n## License\nThis project is distributed under [MIT](LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgierens%2Frecmd5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgierens%2Frecmd5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgierens%2Frecmd5/lists"}