上下文:我正在尝试让应用程序在我登录时自动启动。为此,我需要path
为应用程序选择。
以下是我已经研究过的路径:
/sbin
/usr/sbin
/usr/local/bin
/usr/share/
如果这可能有帮助,我正在尝试查找的应用程序名为“ ScreenCloud ”,我从 Ubuntu 软件中心下载了它。
但是我找不到它,有什么方法可以知道特定软件的安装位置吗?因为即使我找到了这个,我也想避免将来遇到同样的问题。
上下文:我正在尝试让应用程序在我登录时自动启动。为此,我需要path
为应用程序选择。
以下是我已经研究过的路径:
/sbin
/usr/sbin
/usr/local/bin
/usr/share/
如果这可能有帮助,我正在尝试查找的应用程序名为“ ScreenCloud ”,我从 Ubuntu 软件中心下载了它。
但是我找不到它,有什么方法可以知道特定软件的安装位置吗?因为即使我找到了这个,我也想避免将来遇到同样的问题。
查找可执行文件的路径
最好的办法
type executable
查看此问题以了解有关如何
type
更好的更多信息。(谢谢,评论!)其他方法
whereis executable
which executable
这些命令仅在 PATH 变量 (
echo $PATH
) 中搜索,因此它们在某些情况下无效(内置函数、别名或 bash 函数等)。在路径内部或外部查找命令位置
假设您要查找
uname
列出系统信息的程序的位置。如果您想知道顶级命令存储在哪个目录中,您有多种选择:定位优势
最后一个选项返回不仅包含从命令提示符运行的程序的
locate
所有文件。uname
的优点
locate
是它会找到不在您的搜索路径中的命令。type -a
(优先于 simpletype
)并且which
只会在您的搜索路径中找到命令。要查看您的搜索路径,请使用echo $PATH
.以How to start screencloud?中的这个答案为例 :
该
locate screencloud
命令会找到它,但which screencloud
不会type -a screencloud
因为:screencloud.sh
并且仅对locate
部分匹配进行命令搜索。/opt/screencloud
可能不在搜索路径中。which
并且type
只在搜索路径中查找可执行文件。注意:这是一个较旧的答案。现代 ScreenCloud 以
screencloud
.Locate 相对于命令的优势
find
在于它可以快数百甚至数千倍。同样find
从 from 开始运行/
会产生许多您不会遇到的权限错误locate
。找出劣势
如果您今天刚刚安装了该程序,您将需要使用它
sudo updatedb
来更新 locate 的数据库。使用以下命令列出所有
$PATH
目录:使用以下命令查找完整路径
screencloud
:如果您使用
apt
、apt-get
或 Ubuntu 软件中心安装软件包,您可以使用以下命令查找完整路径:假设你使用了这个存储库,你应该可以
screencloud
在/usr/bin/
.完整路径是:
或者
但是,如果您根据问题中提供的链接使用snapcraft 商店,则路径将位于以下目录下:
更多信息
另外,请记住 Ubuntu 区分大小写,因此您必须使用所有小写字母,不能大写。