如何找到 genymotion 的路径

如何找到 genymotion 的路径

我在尝试查找 Ubuntu 存储程序文件夹的位置时遇到了问题。我是 Linux 新手,只知道一些有限的终端命令,但我在 Ubuntu 中尝试了数百个文件夹,却找不到程序所在的位置。我尝试了 find 命令,但得到了几百个结果,似乎没有一个是正确的。我已经安装并正确运行了 GenyMotion,但我需要程序文件夹的路径才能将其与 Intellij 连接起来。

任何帮助都将不胜感激。

感谢氏族

答案1

使用 which 命令来确定命令的位置,例如:

which genymotion

如果程序安装在标准位置,系统会找到该程序并打印出其位置。如果第三方应用程序未安装在标准位置,则要从命令行运行它,您需要将其位置添加到 PATH 变量中,或者键入完整路径(您可能在安装时已决定)。例如,如果您决定将程序安装到 Documents 文件夹,则程序路径可能如下所示:

/home/<username>/Documents/<myprogram>/bin

答案2

在 bash 中使用type来查看命令是什么:别名、内置,如果不是,则是可执行文件的路径。

>type gcc 
gcc is /usr/bin/gcc
>type ll
ll is aliased to `ls -alF'

您可以添加一个realpath调用来解析链接(甚至是替代方案使用的多阶段链接):

>type java
java is /usr/bin/java
>realpath /usr/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

答案3

在我的安装中,并且——听起来——在你的安装中也是如此,它本身genymotion并不在 中PATH,因此无法使用type ...或之类的命令找到它which ...。相反,我会尝试运行以下命令:

grep -Pio 'Exec=\K[^\r\n]+' /usr/share/applications/genymobile-genymotion.desktop | xargs -I path dirname "path"

因为您说您是 Linux 新手,所以我将简要介绍一下该命令的作用。Grep 将 /usr/share/applications/genymobile-genymotion.desktop使用与 Perl 兼容的正则表达式 (PCRE) 引擎 ( -P) 对文件运行 RegEx 匹配,该引擎将执行不区分大小写的搜索 ( -i) 并仅返回与提供的表达式匹配的内容 ( -o)。要搜索的模式是Exec=[^\r\n]+,在等号后面加上一个\K,这样 GREP 只会打印出该点之后的内容。之所以选择这种模式,是因为典型的桌面文件将如下所示:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Genymotion
GenericName=Android Emulator
GenericName[fr]=Emulateur Android
Icon=/opt/genymobile/genymotion/icons/icon.png
Exec=/opt/genymobile/genymotion/genymotion
Categories=Development;Emulator;

在 GREP 与该文件匹配后,所有结果都将“通过管道传输”到xargs,它基本上只是一个兼容性包装器,用于获取多行输出并将每行作为输入传递给另一个命令。(它可以做更多的事情,但这超出了这个答案的范围。)xargs然后调用dirname给定的路径结果。dirname只是一个小的 Linux 程序,当给定一个文件路径时,它会将文件名与路径的其余部分分开,然后返回不带文件名的路径/目录部分。

如下面的截图所示,在我的例子中,genymotion安装在/opt/genymobile/genymotion

显示 Genymotion 安装路径的示例

答案4

距离你的问题已经过去很久了,但我还是把这个答案留给有同样问题的人。如果

哪个genymotion

对你不起作用,很可能这个命令会很有用

genymotion 在哪里

并解决您的问题。

相关内容