write rules for ai.

This commit is contained in:
2025-11-20 23:13:28 +08:00
parent 5cf5d6c7f1
commit 6ab9c38955
2 changed files with 67 additions and 2 deletions

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
authors = ["licsber <admin@licsber.site>"] authors = ["licsber <admin@licsber.site>"]
edition = "2021" edition = "2021"
description = "Summary all files to meta.json." description = "Summary any files meta."
repository = "https://git.licsber.site/rust/l-s" repository = "https://git.licsber.site/rust/l-s"
homepage = "https://blog.licsber.site" homepage = "https://blog.licsber.site"
readme = "README.md" readme = "README.md"

View File

@@ -1,3 +1,68 @@
# l-s # l-s
summary all files to `meta.json`. Summary any files 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"
}
```