Skip to content

Instantly share code, notes, and snippets.

@GluTbl
Last active October 10, 2025 12:08
Show Gist options
  • Select an option

  • Save GluTbl/91ddc0bb31a01c5520b3d96d42e5077d to your computer and use it in GitHub Desktop.

Select an option

Save GluTbl/91ddc0bb31a01c5520b3d96d42e5077d to your computer and use it in GitHub Desktop.
[Recursive file's sha256sum] #bash #shell
# do sha256asum for each file
# find . -type f ! -name "*.sha256sum" -exec bash -c 'for f; do echo "Processing: $f"; (cd "$(dirname "$f")" && sha256sum "$(basename "$f")" > "$(basename "$f").sha256sum"); done' _ {} +
# find . -type f ! -name "*.sha256sum" -exec sh -c 'for f; do echo "Processing: $f"; (cd "$(dirname "$f")" && sha256sum "$(basename "$f")" > "$(basename "$f").sha256sum"); done' _ {} +
# if you want to skip existing
#find . -type f ! -name "*.sha256sum" -exec sh -c 'for f; do if [ -f "$f.sha256sum" ]; then echo "Skipping (already exists): $f.sha256sum"; else echo "Processing: $f"; (cd "$(dirname "$f")" && sha256sum "$(basename "$f")" > "$(basename "$f").sha256sum"); fi; done' _ {} +
# check each file sha256sum is match
# find . -type f -name "*.sha256sum" -exec sh -c 'cd "$(dirname "{}")" && sha256sum -c "$(basename "{}")"' \;
# Fix file by dos2unix
# shred \r\n using dos2unix
# find . -type f -name "*.sha256sum" -exec sh -c 'cd "$(dirname "{}")" && echo "Dos2unix > $(dirname "{}")/$(basename "{}")" && dos2unix "$(basename "{}")"' \;
# find . -type f ! -name '*.sha256sum' -exec sha256sum "{}" \; | tee checksums.sha256sum
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment