Essay
飞书空间清理 on Mac
命令行操作起来比在飞书点来点去方便多了。。。
Intro
今天清理Mac存储空间时发现飞书莫名其妙占用了特别多的存储空间,起初以为是保留了已退出的账号的聊天记录,但是和AI一起研究了一下,发现主要是缓存占据了大量的空间。虽然飞书可以在设置里面清理缓存,但是似乎清理的不是很干净。尝试直接删除缓存文件发现并不会影响正常使用。
步骤(来自AI)
- 先定义飞书数据目录:
BASE="$HOME/Library/Containers/com.bytedance.macos.feishu/Data/Library/Application Support/LarkShell"
- 看各账号占用:
du -sh "$BASE"/aha/users/* 2>/dev/null | sort -h
- 确认当前正在使用的账号。保持飞书打开并操作几下,然后看哪个账号目录刚刚有文件更新:
for d in "$BASE"/aha/users/*; do
id=$(basename "$d")
[ "$id" = "global" ] && continue
newest=$(find "$d" -type f -exec stat -f '%m %Sm' -t '%Y-%m-%d %H:%M:%S' {} + 2>/dev/null \
| sort -nr | head -1)
size=$(du -sh "$d" 2>/dev/null | awk '{print $1}')
echo "$size $id $newest"
done
刚刚更新时间变化的那个,通常就是当前账号。
- 定义当前账号目录,例如:
CUR="$BASE/aha/users/eda6e773b4ad89136086d11438820d37"
把上面的 ID 换成你自己的。
- 看
CacheStorage占了多少:
find "$CUR" -type d -name "CacheStorage" -prune \
-exec du -sh {} \; 2>/dev/null | sort -h
如果这里就是几个 GB 的大头,就可以清。
- 完全退出飞书,
⌘Q退出,不要只是关窗口。
然后删除当前账号的 CacheStorage:
find "$CUR" -type d -name "CacheStorage" -prune \
-exec rm -rf {} +
- 清理后检查:
du -sh "$CUR"
以及:
du -sh "$BASE/aha"
CacheStorage 属于 Electron/Chromium 的 Service Worker 缓存,删除后会重新生成。一般不会删除云端聊天记录或文档,但以后继续使用飞书,缓存还会逐渐变大。
如果想把所有飞书账号的 CacheStorage 一次清掉,退出飞书后可以用:
find "$BASE/aha/users" -type d -name "CacheStorage" -prune \
-exec rm -rf {} +
不建议直接删除整个 aha/users/<账号ID>,也不要随便删 IndexedDB、Local Storage、Cookies、*.db 等目录或文件,因为这些可能涉及登录状态和本地数据。
后记
这里的缓存应该主要来源于飞书应用,实测清除缓存后聊天记录不受影响,且理论上聊天记录存放于类似
$BASE/sdk_storage/<账号ID>/
的路径。
此外,在打开了几个应用后缓存文件夹空间占用快速增长,基本可以实锤这里的Cache来源于飞书应用