我必须uname
在 Debian 机器上找到该文件,检查它来自哪个包并将其删除。当我用来which
查找它时,我得到了/usr/bin/uname
。当我尝试检查它时,dpkg -S uname
没有这样的文件。有一个/bin/uname
虽然。它们之间有什么区别?
答案1
没有什么区别;在Ubuntu中,bin
是一个符号链接/usr/bin
, 一些Debian 系统以及各种其他发行版,因此二进制文件出现在这两个位置。
包可以将文件发送到任一位置;要查找提供给定二进制文件的包,请查找bin/
后跟二进制文件:
dpkg -S bin/uname
答案2
首先,使用type
或type -a
来获取所有可用uname
文件,而不是which
.看为什么不用“哪个”呢?那该用什么呢?。
接下来,当您想查看哪个包提供给定文件时,您可以使用该文件的完整路径(或者bin/filename
如果该文件是二进制文件)正如斯蒂芬所解释的)。例如,在 Ubuntu 系统上,我得到:
$ type -a uname
uname is /bin/uname
所以这就是我需要传递给的内容dpkg -S
:
$ dpkg -S /bin/uname
coreutils: /bin/uname
那么,就这样吧。/bin/uname
由包装提供coreutils
。