当前位置: 首页>>技术教程>>正文


aptitude 如何使用通配符?

,

问题描述

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

sudo apt-get remove openoffice*.*

最佳办法

http://ubuntuforums.org/showthread.php?t=228309 表示可以通过 ~n<package name> 等结构实现,用户手册 http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s02.html 对此进行了确认。

~n<package name> 中的 ~n 是匹配包名称的搜索模式。也可以匹配包名称以外的其他字段,请参阅 http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide

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

aptitude show ~nredshift

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

sudo aptitude -P remove ~nopenoffice

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

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

次佳办法

您只需将其放在引号中:

sudo apt-get remove "openoffice*"

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

第三种办法

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12613.html,未经允许,请勿转载。