apt 包管理器中包名前的“~n”是什么意思?

apt 包管理器中包名前的“~n”是什么意思?

我的 linux mint 机器上的 nvidia 驱动程序遇到了太多问题,因此我决定完全卸载 nvidia 驱动程序。为此,我开始搜索一些薄荷论坛,并找到了这个命令。

sudo apt purge ~nnvidia

那么这个“~n”的目的是什么呢?

在其他一些网站上我也发现了这个简单的正则表达式

sudo apt purge '*nvidia*'

据我了解,这只是选择其中包含“nvidia”的软件包。

但该~nnvidia命令选择了一些比*nvidia*.

以下是由以下人员选择的套餐~nnvidia

  libnvidia-cfg1-390* libnvidia-common-390* libnvidia-compute-390* libnvidia-compute-390:i386*
  libnvidia-compute-460* libnvidia-decode-390* libnvidia-decode-390:i386* libnvidia-encode-390*
  libnvidia-encode-390:i386* libnvidia-fbc1-390* libnvidia-fbc1-390:i386* libnvidia-gl-390*
  libnvidia-gl-390:i386* libnvidia-ifr1-390* libnvidia-ifr1-390:i386* nvidia-compute-utils-390*
  nvidia-compute-utils-460* nvidia-dkms-390* nvidia-dkms-460* nvidia-driver-390* nvidia-kernel-common-390*
  nvidia-kernel-common-460* nvidia-kernel-source-390* nvidia-prime* nvidia-prime-applet* nvidia-settings*
  nvidia-utils-390* xserver-xorg-video-nvidia-390*

软件包选择者*nvidia*

  libnvidia-cfg1-390* libnvidia-common-390* libnvidia-compute-390* libnvidia-compute-460*
  libnvidia-decode-390* libnvidia-encode-390* libnvidia-fbc1-390* libnvidia-gl-390* libnvidia-gl-390:i386*
  libnvidia-ifr1-390* libnvidia-ifr1-390:i386* nvidia-compute-utils-390* nvidia-compute-utils-460*
  nvidia-dkms-390* nvidia-dkms-460* nvidia-driver-390* nvidia-kernel-common-390* nvidia-kernel-common-460*
  nvidia-kernel-source-390* nvidia-prime* nvidia-prime-applet* nvidia-settings* nvidia-utils-390*
  xserver-xorg-video-nvidia-390*

那么为什么这些:i386包没有包含在 中*nvidia*

答案1

表明您正在尝试将名称作为正则表达式进行匹配,而不是简单的字符串比较~napt

正则表达式nvidia意味着匹配其中包含子字符串的任何内容nvidia,而不是匹配完整的 string nvidia

因此你会得到一个更长的列表。

更多细节这里。请注意,此功能仅apt在版本 1.9.6 及以上版本中可用。如果基本字符串比较不匹配,早期版本会自动按正则表达式进行搜索。

相关内容