Answers:
我提出以下bash脚本
#!/bin/bash
cd /var/cache/apt/archives/
printf '%s\n' *.deb |
awk -F_ '{ print $1 }' |
sort -u |
while read pkg; do
pkg_files=($(ls -t "$pkg"_*.deb))
nr=${#pkg_files[@]}
if ((nr > 1)); then
unset pkg_files[0]
echo rm "${pkg_files[@]}"
fi
done
如果对输出列表感到满意,请echo
从rm
行中删除。
它能做什么?
"_"
,获取程序包名称每个名字
如果列表中有多个包裹
它可以在效率,列出相应套餐之差而得到名称仅包文件加以改进,sort
和sort -u
。
使用autoclean选项进行apt-get或aptitude
sudo apt-get autoclean
sudo aptitude autoclean
从手册页
清洁
clean清除检索到的软件包文件的本地存储库。它从/ var / cache / apt / archives /和/ var / cache / apt / archives / partial /中删除除锁定文件之外的所有内容。
自动清洁
像clean一样,autoclean会清除本地本地存储库中提取的软件包文件。不同之处在于,它仅删除不再下载且几乎无用的软件包文件。这使得高速缓存可以长期维护,而不会失去控制。