我有一个文件的名称,我需要确定提供它的包。如果不是因为我需要执行不区分大小写的搜索,下面的命令可以正常工作:
dpkg -S filename.txt
Run Code Online (Sandbox Code Playgroud)
如果文件名为“filename.txt”,这很有效,但如果文件名为“Filename.txt”,则无效。
查阅该命令的联机帮助页dpkg
没有透露有关命令的不区分大小写选项的任何信息,我被蒙在鼓里。
是否有一种方法来查询包数据库中不区分大小写的方式有这个文件?
Gil*_*il' 10
dpkg接受通配符模式。如果您不知道文件名是否有首字母大写也没关系,但它没有缩放。
dpkg -S '[Ff][Ii][Ll][Ee][Nn][Aa][Mm][Ee].[Tt][Xx][Tt]'
Run Code Online (Sandbox Code Playgroud)
无需额外工具,您就可以轻松重现dpkg -S内部执行的操作:
grep -Fi filename.txt /var/lib/dpkg/info/*.list
Run Code Online (Sandbox Code Playgroud)
您可以使用dlocate 加快
dpkg -S与索引(如locate速度可达find /,但你不知道的增益几乎一样多用dlocate)。由于dlocate基于locate,它接受相同的选项,包括-i不区分大小写的搜索。由于dlocate使用索引(通常每晚重建),它可能会稍微过时。
dlocate -i filename.txt
Run Code Online (Sandbox Code Playgroud)
apt 文件 在可用于安装的所有包中搜索文件名。它有一个
-ui不区分大小写的搜索选项。
apt-file -i search filename.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |