![如何在 aptitude 中使用通配符?](https://linux22.com/image/1105602/%E5%A6%82%E4%BD%95%E5%9C%A8%20aptitude%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E9%80%9A%E9%85%8D%E7%AC%A6%EF%BC%9F.png)
有没有办法使用通配符,aptitude
例如如下所示:
sudo apt-get remove openoffice*.*
答案1
http://ubuntuforums.org/showthread.php?t=228309表示可以通过诸如这样的构造来实现,~n<package name>
并且用户手册也证实了这一点http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s02.html。
~n
in~n<package name>
是用于匹配软件包名称的搜索模式。除了软件包名称之外,还可以匹配其他字段,请参阅http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide。
以下是一个例子。假设你想aptitude
显示所有名称中带有“redshift”的包,那么你执行
aptitude show ~nredshift
它应该可以与其他 aptitude 选项结合使用,例如 install 和 remove,例如,要删除所有已安装的带有 openoffice 名称的软件包,请发出
sudo aptitude -P remove ~nopenoffice
确保-P
在使用搜索模式时使用该选项,强制 aptitude 在下载、安装或删除软件包之前显示提示(搜索模式可能有许多匹配,并且您希望在执行操作之前得到提示)。
我还没有弄清楚的一件事是如何获得通配符的确切功能,例如openoffice*
匹配每个字符串从...开始“openoffice”(~nopenoffice
匹配任何字符串包含“openoffice”)。也许可以采用一种解决方法,例如搜索名称中带有特定字符串的已安装软件包,然后将其名称提供给 aptitude。
答案2
您只需将其放在引号中:
sudo apt-get remove "openoffice*"
否则,shell 会尝试将其与当前工作目录中的文件进行匹配。
答案3
要匹配以包名称开头的字符串,请^
在其前面添加一个。
例如:aptitude search ~n^openoffice