家里使用了设备中,给linux分配了500G空间,前段时间发现空间所剩无几,只有几十G,经过排查,发现占用最多的来自两个方面,一个是docker,占用了200G以上,一个是conda,也占用了100G以上。
其中docker的清理之前已经总结过了:
对于conda,下面我总结了一套我自己常用的排查和清理流程,希望能帮你把那些吃灰的环境处理干净。
一、查看当前 Conda 环境列表
最基础的一步,看看你到底有多少个环境:
conda env list
或者简写:
conda info --envs
输出类似这样:
# conda environments:
#
base * /home/young/program/anaconda3
pywen-env /home/young/program/anaconda3/envs/pywen-env
torch2 /home/young/program/anaconda3/envs/torch2
cv-dev /home/young/program/anaconda3/envs/cv-dev
tf-old /home/young/program/anaconda3/envs/tf-old
...

这只是名字列表,但你马上会发现有一堆项目早已不在维护。
二、统计每个环境占用的空间大小
遗憾的是,Conda 本身并不提供查看环境体积的命令,但其实每个环境就是一个目录,你可以直接用 du 命令统计。
例如:
bash
du -sh /media/young/opt/envs/*
输出可能是这样的:
bash
198M /media/young/opt/envs/douban
6.8G /media/young/opt/envs/fish-speech
7.0G /media/young/opt/envs/fish-speech-1.5
7.1G /media/young/opt/envs/fish-speech-1.5.1
7.0G /media/young/opt/envs/funasr
如果你想排序看看哪些环境最肥,可以:
du -sh ~/program/anaconda3/envs/* | sort -h

这会按从小到大的顺序列出所有环境的大小,非常直观。
我一般一看就知道哪些可以直接动刀------比如fish-speech 环境有好几个,大概率是不用的,直接清理就好了。
三、快速统计总空间占用
你也可以看看整个 envs 目录到底占了多少:
bash
du -sh ~/program/anaconda3/envs/
四、删除不再需要的环境
Conda 提供了标准删除命令:
conda remove -n 环境名 --all
例如:
conda remove -n tf-old --all
但有时候,你可能连环境名都忘了。别担心,你可以直接删除目录:
rm -rf ~/program/anaconda3/envs/tf-old
这其实和上面效果一样,只不过跳过了 Conda 的内部清理逻辑。
如果你想稳妥点,还是推荐使用 conda remove。
五、批量清理:找出大环境 + 不常用的环境
你可以组合几个命令,找出最值得删除的那几个环境:
du -sh ~/program/anaconda3/envs/* | sort -hr | head -n 10
这会列出前 10 个最大的环境。
再结合 conda env list,看看哪些环境最近没动过(或项目早已结束),直接删除。
六、清理 Conda 缓存与包
除了环境目录,Conda 的包缓存也很占空间。
默认在:
~/.conda/pkgs
你可以用以下命令安全清理未使用的包:
conda clean --all
这一步能节省几百 MB 到几 GB 不等的空间(取决于你重建环境的频率)。
如果想更精细一点:
conda clean --tarballs --packages --yes
基本上这些操作之后,就可以清理干净了。