我想知道一种清理 var/cache/apt 文件夹的方法,如果它有多个版本,它只保留最新版本的包,或者如果它是该程序中的唯一一个,它只保留一个包。
例如我有几个 vlc 包 (vlc_1.1.11, vlc_1.1.12..) 和几个 wine 包 (wine1.3_1.3.34,wine1.3_1.3.35,wine1.3_1.3.36,wine1.3_1.3.37...)和许多其他人这样。
那么如何清理这个文件夹中只留下最新的包。目前我有 2.5GB,其中大部分只是旧包与新包的混合。
Pan*_*her 16
使用 autoclean 选项来 apt-get 或 aptitude
sudo apt-get autoclean
sudo aptitude autoclean
Run Code Online (Sandbox Code Playgroud)
从手册页
干净的
clean 清除检索到的包文件的本地存储库。它从 /var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/ 中删除除锁定文件之外的所有内容。
自动清洁
与 clean 一样,autoclean 会清除检索到的包文件的本地存储库。不同的是,它只删除不能再下载的包文件,而且基本上没有用。这允许缓存长期维护而不会失去控制。
我建议使用以下 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
Run Code Online (Sandbox Code Playgroud)
如果您对输出列表感到满意,请echo
从该rm
行中删除。
它能做什么?
"_"
,获得包名每个名字
如果列表中有多个包裹
它可以在效率,列出相应套餐之差而得到名称仅包文件加以改进,sort
和sort -u
。
归档时间: |
|
查看次数: |
21290 次 |
最近记录: |