CLI AI

别再背 find 的参数了:直接说你要什么

2026-01-13

find 是 Unix 文件检索的瑞士军刀,也是大家最常 Google 的工具。size 参数是 +100M 还是 +100MB?-mtime -7 是最近七天还是七天以上?你可以把半页 man 装进脑子,也可以干脆不再尝试。

一个场景

周五下午,构建机的磁盘快满了,你得弄清楚是谁在吃。不需要全量盘点——只要写出脑海里那四五个查询就行,前提是你还记得参数。

大于 100 MB 的文件

clai
$ clai 找出当前目录下大于 100MB 的文件→ find . -type f -size +100M -printf '%s\t%p\n' | sort -rn | head -20./build/output.bin     142876160./logs/2026-04.json    113246208./assets/raw.tar       104857600

大小加时间

clai
$ clai 过去一周修改的、大于 50MB 的文件→ find . -type f -size +50M -mtime -7 -printf '%TY-%Tm-%Td %s %p\n'2026-04-26 142876160 ./build/output.bin2026-04-23 73400320 ./cache/db.dump

按扩展名过滤

clai
$ clai 找出大于 10MB 的 .log 文件→ find . -type f -name '*.log' -size +10M./var/log/app.log./var/log/nginx/access.log

最大 10 个目录

clai
$ clai 列出当前目录下最大的 10 个子目录→ du -hx --max-depth=2 . 2>/dev/null | sort -hr | head -102.4G    ./node_modules1.1G    ./.cache640M    ./logs

第一次答非所问

如果 clai 给你 du -h | sort -h | tail,但你想要前 10,按 R 加上语境——「前 10,倒序,人类可读」。改写循环就是为这个场景设计的;完整模式见改写那篇。

什么没被替代

-exec 链式调用和较冷门的谓词(-newer、-prune)如果你天天用,记忆成本是值得的。但 90% 的场景——目录 Y 下、大小 X、匹配 Z 的文件——用一句话描述比回忆语法更快。

清完大文件后,清理旧日志和备份是下一步。