2 unstable releases
0.3.0 | Feb 6, 2022 |
---|---|
0.2.0 | Jan 10, 2022 |
#21 in #md5
7KB
77 lines
Uniqopy
Create a unique copy of a file using its name, the system time, and MD5 hashing.
$ ls
fibblesnork.txt
$ uniqopy fibblesnork.txt
Copying fibblesnork.txt to fibblesnork.2022-01-10-07:06:49.db194cb65e3d5200798471729c8f3e9a.txt
Copyied 16 bytes
$ ls
fibblesnork.2022-01-10-07:06:49.db194cb65e3d5200798471729c8f3e9a.txt
fibblesnork.txt
You might want a unique filename:
- For files generated in a batch job
- For (small) backups
- For log rotation
- Etc.
Name Generation
To generate a uniquely named copy, uniqopy:
- reads and calculates the MD5 hash of the input file's contents (with
std::fs::read
and themd5
crate), - generates a timestamp (with
chrono::offset::Local::now
), - concatenates the file's original name, the timestamp, and the MD5 hash, and finally
- if the original filename has an extension (according to
std::path::Path::extension
) it's moved to the end of the new filename.
For example:
foo
becomesfoo.2022-01-10-07:05:03.d3b07384d113edec49eaa6238ad5ff00
foo.txt
becomesfoo.2022-01-10-07:05:01.0e771a9094f21f0bf74be99ebdbb568d.txt
License
This work is provided under the Parity Public License 7.0.0 which can be
found in LICENSE.md
or at
https://paritylicense.com/versions/7.0.0.
Dependencies
~1MB
~18K SLoC