# 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": "j", "dirs": [], "files": [ { "basename": "CW-NAS-J6-230729.iso", "size": 20000768, "friendly_size": "19.07MB", "mtime": 1763445083, "head_115": "0F62212861F9AB6213A793AA74B33C8856AA9D45", "head_baidu": "FE3C25567C3681EEAA1EAAE7804460CF", "ed2k": "D3F1330B892884240142296E0A670EE4", "md5": "AB14F900F1ABBF6A723EB8F7D6DDABC1", "sha1": "B1D31D15A866EE0C3DCC9972FB92EE6FA2BE4D4A", "sha256": "E217F816094C5EE4CF366E6F168851C13B27D8CC9C42F392B637CAD1C20A8510", "xxh128": "F4A47B42150480BE1193EA7DA0DFD083" } ] } ], "files": [], "v": "2022-10-24" } ```