2.2 KiB
2.2 KiB
l-s
为任意文件或文件夹生成和校验元数据(meta 信息)的工具。
使用说明
程序接受一个命令行参数,作为文件或文件夹路径。如果未提供参数,则默认处理当前目录。
元数据信息以 json 格式保存,且采用美观(pretty)打印以方便阅读。
如果输入的是文件:
- 元数据文件与原文件同名,仅添加
.json扩展名,存放在文件所在目录下的meta子文件夹内(文件夹不存在则自动创建)。 - 若不存在相应元数据文件,则自动计算并保存。
- 若元数据文件已存在,则仅校验其中的
xxh128哈希值。- 校验通过将提示“校验通过”。
- 校验不通过时,会重新计算并输出当前元数据到标准输出,同时保留原元数据文件不变。
如果输入的是文件夹:
- 若不存在
meta.json,则按字母序遍历目录树,计算全部文件元数据并写入meta.json。 - 若
meta.json已存在:- 程序会先将其重命名为
meta-old.json,提示用户正在校验旧数据; - 遍历当前目录结构,仅计算每个文件的
xxh128并与旧元数据对比; - 发现校验失败、新增或缺失的文件都会即时打印到标准输出;
- 若全部一致,则将
meta-old.json重命名回meta.json;如有异常则保留meta-old.json供排查(不会生成新的meta.json)。
- 程序会先将其重命名为
标准meta.json的格式如下:
{
"dir_name": "test",
"dirs": [
{
"dir_name": "child",
"dirs": [],
"files": [
{
"basename": "233",
"size": 4,
"friendly_size": "4.00B",
"mtime": 1763654099,
"head_115": "28AAB5A575FA1138E2CE5B1366AE697685775011",
"head_baidu": "1490AAA92CB684B2110DDB29D7A1AC15",
"ed2k": "6CB03133656BDB8DFC780EBBD4FF47CC",
"md5": "9F3D9739B11C2A4B08EA48512AC467F6",
"sha1": "10E25C6EC9A30C731BF82E5DBA37BC693E9F615D",
"sha256": "5F8064636753265C7F1B1EE075DF77E1AE9BCE7E94831DE583784A0C13EB902F",
"xxh128": "B92C6051418D532F7E933C08C44C4C88"
}
]
}
],
"files": [],
"v": "2022-10-24"
}