如何使用aptitude的通配符?

有没有办法使用具有aptitude通配符,如下所示:

 sudo apt-get remove openoffice*.* 

http://ubuntuforums.org/showthread.php?t=228309表示可以通过~n ,这可以通过用户手册http://algebraicthunk.net/~dburrows/projects/确认。 aptitude / doc / en / ch02s03s02.html 。

~n中的~n是用于匹配包名称的搜索模式。 除了包名称之外,还可以匹配其他字段,请参阅http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide 。

这是一个例子。 假设您希望aptitude在其名称中显示每个包含“redshift”的包,然后您发出

 aptitude show ~nredshift 

它应该可以与其他aptitude选项结合使用,例如安装和删除,例如,以你的名义删除所有已安装的openoffice软件包

 sudo aptitude -P remove ~nopenoffice 

在使用搜索模式强制aptitude在下载,安装或删除软件包之前显示提示时,请确保使用-P选项(搜索模式可能包含许多匹配项,并且您希望在执行操作之前提示您)。

我没有解决的一件事是如何获得通配符的确切function,例如openoffice*匹配 “openoffice” 开头的每个字符串( ~nopenoffice匹配任何包含 “openoffice”的字符串)。 也许可以采用一种解决方法,例如搜索名称中包含特定字符串的已安装软件包,然后使用其名称提供aptitude。

你只需把它放在引号中:

 sudo apt-get remove "openoffice*" 

否则shell会尝试将其与当前工作目录的文件相匹配。

要匹配以包名开头的字符串,请在它前面添加^
例如: aptitude search ~n^openoffice