我从 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 search
和apt 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 命令可以删除孤立的软件包,也就是那些曾经作为依赖项安装但现在不再安装的软件包。