У меня есть проблема при попытке найти, где Ubuntu хранит папки программы. Я плохо знаком с Linux и только знаю несколько ограниченных терминальных команд, но я попробовал сотни папок в Ubuntu и не могу найти, где программы находятся. Я попробовал команду находки, но я получаю несколько сотен хитов, и ни один из них, кажется, не корректен. Мне установили GenyMotion и работающий правильно, но мне нужен путь к папке программы для соединения его с Intellij.
Любая справка ценилась бы.
Спасибо клан
Я пытаюсь поместить genymotion для студии андроида, и путь "/opt/genymobile/genymotion" является работой для меня
В использовании удара type
для наблюдения, какова команда: псевдоним, встроенный, и если не любой путь к исполняемому файлу.
>type gcc
gcc is /usr/bin/gcc
>type ll
ll is aliased to `ls -alF'
Можно добавить a realpath
вызов для разрешения ссылок (даже многоступенчатые ссылки, используемые альтернативами):
>type java
java is /usr/bin/java
>realpath /usr/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Используйте, которые управляют к штрафу местоположением команды, например:
which genymotion
Если программа будет установлена в стандартном месте, то это будет найдено, и местоположение распечатывается. Если приложение сторонних производителей не установлено в стандартном месте, то выполнить его из командной строки Вы или должно добавить ее местоположение к Вашей переменной ПУТИ или тип в полном пути, который Вы, возможно, решили во время установки. Например, если бы Вы решили установить программу на своей папке Documents, то Ваш путь программы мог бы быть похожим:
/home/<username>/Documents/<myprogram>/bin
В моей установке, и - звуком его - в Вашей также, genymotion
не находится в PATH
самостоятельно и поэтому не будет найден с помощью команд как type ...
или which ...
. Вместо этого я попытался бы выполнить следующее:
grep -Pio 'Exec=\K[^\r\n]+' /usr/share/applications/genymobile-genymotion.desktop | xargs -I path dirname "path"
Поскольку Вы сказали, что Вы плохо знакомы с Linux, я буду кратко суммировать то, что делает та команда. Grep собирается выполнить соответствие RegEx против /usr/share/applications/genymobile-genymotion.desktop
файл с помощью механизма Совместимого с Perl регулярного выражения (PCRE) (-P
), который выполнит поиск без учета регистра (-i
) и возвратите назад только содержание, которое соответствует обеспеченному выражению (-o
). Шаблон для поиска Exec=[^\r\n]+
, с a \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