在这个 apt 参数中,前导波浪号是什么意思?

在这个 apt 参数中,前导波浪号是什么意思?

我从 ROS 安装教程中找到了这段代码。

https://docs.ros.org/en/iron/Installation/Ubuntu-Install-Debians.html

在底部,它说要删除所有包,执行以下代码片段:

sudo apt remove ~nros-iron-* && sudo apt autoremove

我想知道前导波浪号和 n 表示什么。我运行的时候apt search ~nros期望 ~n 充当相当于换行符的转义符,但这并没有发生(它还列出了 ros 位于软件包名称中间的软件包)。也许apt searchapt remove解析文本的方式不同;我不确定。

答案1

自 2.0 版以来,apt支持受 Debian 工具启发的搜索语法aptitude,并在apt-模式手册页。具体来说,~nname?name(name)

   ?name(REGEX), ~nREGEX
       Selects packages where the name matches the given regular expression.

答案2

命令中的前导波浪号 (~)sudo apt remove ~nros-iron-* && sudo apt autoremove用作 apt search 命令的简写。具体来说,~nname 是 ?name(name) ?name(REGEX) 的简写形式,~nREGEX 选择名称与给定正则表达式匹配的软件包。

因此,在这种情况下,~nros-iron-* 选择所有名称包含“ros-iron”的包。

apt remove 命令会卸载指定的软件包,但不会卸载其配置文件或数据文件。如果要删除与软件包相关的所有内容,可以使用 apt purge 命令。

apt autoremove 命令可以删除孤立的软件包,也就是那些曾经作为依赖项安装但现在不再安装的软件包。

相关内容