#archive #tar #hash #checksum #zip #file-format #read-file

app tarsum

一个命令行工具,用于获取归档文件内文件的哈希值,无需先将文件提取到磁盘上

5 个版本

0.1.4 2021年7月22日
0.1.3 2021年5月30日
0.1.2 2020年12月15日
0.1.1 2020年12月14日
0.1.0 2020年12月14日

#1627文件系统

MIT 协议

14KB
209 代码行

tarsum

crates.io docs.rs

读取归档文件并打印其中文件的哈希值。

支持由 checksums crate 支持的文件哈希。

当前支持的归档格式

  • zip/jar
  • tar
  • tar.gz
  • tar.xz
  • tar.bz2
  • 欢迎为更多格式提供 PR!

待办事项

  • 更多归档类型
  • 测试
  • 提供 JSON/? 输出,以便于更易读的机器输出

当前帮助文本

USAGE:
    tarsum [FLAGS] [OPTIONS] [target]

ARGS:
    <target>
            If no file is provided, it is read over stdin, and --format must be supplied

FLAGS:
    -e, --escaped
            Perform C-style string escaping on filenames. Default is to force filenames to UTF8,
            which may be lossy

        --help
            Prints help information

    -l, --lower
            Emit lowercase file hashes

    -s, --size
            If provided once, emits each file's size in bytes. If provided twice or more, emits in a
            human readable form (2.5MiB)

    -V, --version
            Prints version information


OPTIONS:
    -f, --format <format>
            Read the file as a specific file format. Overrides the target's extension

    -h, --hash <hash>
            Specify the hash algorithm [default: MD5]

    -r, --regex <regex>
            Outputs and hashes only matching filenames


Supported hash algorithms: (from the `checksums` rust crate, https://crates.io/crates/checksums)
    SHA1
    SHA2 = SHA2-512, SHA2-384, SHA2-256, SHA2-224
    SHA3 = SHA3-512, SHA3-256
    blake, blake2
    crc64, crc32, crc32c, crc16, crc8,
    md5, md6-128, md6-256, md6-512
    xor8

示例输出

tarsum$ tarsum ./test_data/root.tar
a/aa/f.txt 75FFCBE62A0C6E7C5E770A55BBA54C67
a/aa/g.txt 576248B3F051506BB5316CBAA90A0778
a/bb/h.txt C14E72CEE3A122DEE5B64D73EFD91B19
a/d.txt A91067CFE85BA92E6D9FD5538CD75117
a/e.txt CD12B29773CF3BFB72C2F6DDBF7AD0EC
a.txt 5E70D8E77DAF4B3E0CEB05E0868C6530
b/aa/i.txt 24F5874A3F293722FCD9FDFCDB967382
b.txt 2284615785EAAC08938CE4B1EAFF0E1E
c.txt 5C08CE6C57F9957003246E92D07D03D4

依赖项

~11–21MB
~301K SLoC