Files
l-s/README.md
2025-11-21 00:14:11 +08:00

2.1 KiB
Raw Blame History

l-s

Summary any files meta.

使用说明

接收1个命令行参数为文件/文件夹路径,如命令行参数为空,则默认为当前路径。

元数据均以json格式保存且经过pretty打印以方便人类阅读。

对于输入参数是文件的情况:

文件的元数据命名与原文件相同仅新增json拓展名。

文件的元数据保存路径是其所在路径下的meta子文件夹如果元数据保存路径不存在则新建。

如果文件的元数据不存在,则计算元数据并保存。

如果文件的元数据存在则对元数据中的xxh128部分进行校验。

如果校验通过,则打印校验成功。

如果校验不通过,计算当前的元数据并打印到标准输出,保留原元数据文件不动。

对于输入参数是文件夹的情况:

遍历这个文件夹,以字母序遍历遇到的每一个子文件夹和文件。

文件夹的元数据文件就保存在其中,命名为meta.json

如果文件夹的元数据不存在,则遍历计算并保存。

如果文件夹的元数据存在,则对原元数据文件重命名为meta-old.json并对其中所有文件的xxh128部分校验。

遍历如果发现有新增文件或删除文件,都应打印到标准输出提示用户。

如果全部校验一致,则重新命名回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"
}