如何删除在特定时间安装的大量软件包?

如何删除在特定时间安装的大量软件包?

情况是这样的:比如说,在 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

相关内容