# l-s Summary any file‘s meta. ## 使用说明 接收1个命令行参数,为文件/文件夹路径,如命令行参数为空,则默认为当前路径。 元数据均以json格式保存,且经过pretty打印,以方便人类阅读。 对于输入参数是文件的情况: 文件的元数据命名与原文件相同,仅新增json拓展名。 文件的元数据保存路径是其所在路径下的meta子文件夹,如果元数据保存路径不存在,则新建。 如果文件的元数据不存在,则计算元数据并保存。 如果文件的元数据存在,则对元数据中的xxh128部分进行校验。 如果校验通过,则打印校验成功。 如果校验不通过,计算当前的元数据并打印到标准输出,保留原元数据文件不动。 对于输入参数是文件夹的情况: 遍历这个文件夹,以字母序遍历遇到的每一个子文件夹和文件。 文件夹的元数据文件就保存在其中,命名为`meta.json`。 如果文件夹的元数据不存在,则遍历计算并保存。 如果文件夹的元数据存在,则对原元数据文件重命名为`meta-old.json`,并对其中所有文件的xxh128部分校验。 遍历如果发现有新增文件或删除文件,都应打印到标准输出提示用户。 如果全部校验一致,则重新命名回`meta.json`。 标准`meta.json`的格式如下: ```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" } ```