Crates.io | sha1dir |
lib.rs | sha1dir |
version | 1.0.10 |
source | src |
created_at | 2019-04-26 06:10:04.369167 |
updated_at | 2023-10-02 05:46:42.642707 |
description | Checksum of a directory tree |
homepage | |
repository | https://github.com/dtolnay/sha1dir |
max_upload_size | |
id | 130258 |
size | 36,746 |
Compute a checksum of a directory tree, for example to validate that a directory was copied successfully to a different machine.
$ RUSTFLAGS='-C target-cpu=native' cargo install sha1dir
Run sha1dir
to checksum the current directory, or run sha1dir path/to/dir1 path/to/dir2 ...
to checksum one or more other directories.
The checksum is computed as the bitwise XOR of SHA-1 hashes one per directory entry. The hash for each directory entry is the hash of the following body:
For regular files — the one byte 'f'
, 4 little endian bytes for the path
length, the bytes of the path, 4 little endian bytes for the Unix file mode
as given by st_mode, and finally the file contents.
For symbolic links — the one byte 'l'
, the path length / path / mode as for
regular files, and then the path of the link target.
For directories — the one byte 'd'
, and the path length / path / mode.
The resulting checksum is 160 bits wide like SHA-1.