情况是这样的:比如说,在 17:00,我安装了很多软件包,我可以在 ubuntu 软件中心历史记录中看到它们。我也可以使用提供的方法在 dpkg 日志文件中看到它们这线程。我的问题是:我如何才能轻松删除它们。它们太多了,我无法在突触中逐个删除它们。
我关注的帖子可能有解释方法。但是,我看不到命令中指定的时间,因为我不想删除其他时间安装的任何其他包。
答案1
尝试这个命令,
awk '$1~/yyyy-mm-dd/ && $2~/hh:mm:ss/ && $3~/install/ { print $4}' /var/log/dpkg.log | xargs -I{} sudo apt-get -y remove {}
例子:
awk '$1~/2014-04-17/ && $2~/15:55:03/ && $3~/install/ { print $4}' /var/log/dpkg.log | xargs -I{} sudo apt-get -y remove {}
2014-04-17
上述命令将删除当时安装的所有软件包15:55:03
。
答案2
/var/log/dpkg.log
列出所有带时间戳的安装命令,只需执行grep
。此外,/var/log/apt/history.log
列出所有 apt-get 活动,包括一次性安装或删除的软件包。
答案3
如果你通过 安装了它apt
,那么你可以使用/var/log/apt/history.log
。它的结构如下:
Start Date: YYYY-MM-DD HH:MM:SS
Commandline: apt-get install package1 package2 package3 . . .
Install: library1 libary2 package1 package2
End-Date: YYYY-MM-DD HH:MM:SS
知道我们可以使用 awk 搜索特定的日期和时间,往下一行,删除 apt-get install 行,只留下软件包列表。例如,这是一个示例命令:
awk -F':' '/2015-06-05 16:02:43/ {getline; gsub("apt-get install",""); print $2}' /var/log/apt/history.log
您可以添加管道来xargs apt-get remove
删除这些包。
awk -F':' '/2015-06-05 16:02:43/ {getline; gsub("apt-get install",""); print $2}' /var/log/apt/history.log | xargs apt-get remove