Я установил приложение, и теперь я могу получить к нему доступ через терминал как мое приложение. Это псевдоним, хотя. Как я могу найти полный путь к файлу?
26
Вы можете использовать type
и, which
чтобы определить, что представляет собой определенная команда bash
, и, если это приложение, где она находится.
$ type type
type is a shell builtin
$ type cd
cd is a shell builtin
$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/Users/danielbeck/bin/ls
$ which which
/usr/bin/which
$ which ls
/Users/danielbeck/bin/ls
Команды which
и type -P
работают только для программ на вашем PATH
, конечно, но вы не сможете запускать другие, просто набрав их имя команды в любом случае.
Если вы ищете простой способ определить, где установлен пакет приложений OS X (GUI) (как используется, например, open
командой), вы можете выполнить следующий короткий AppleScript из командной строки:
$ osascript -e 'tell application "System Events" to POSIX path of (file of process "Safari" as alias)'
/Applications/Safari.app
Это требует, чтобы рассматриваемая программа (Safari в примере) работала.
В настоящее время это метод, с помощью которого я могу найти каталог приложений Firefox в OSX и Linux. Должно быть легко перенести в другое приложение. Протестировано на OSX 10.7, Ubuntu 12.04, Debian Jessie
источник
type
иtype -P
нет? Работает ли не OSX-код на OS X? Если нет, можете ли вы объяснить, почему нет? Если да, то почему у вас есть две версии?/bin
или/usr/bin
и т. Д., А вместо этого устанавливаются в,/Applications/My3rdPartyApp.app
а двоичный файл хранится в подкаталоге,Contents/MacOS
что делает его довольно Трудно использовать какие-либо кроссплатформенные методы для определения местоположения приложения (отсюда и использованиеlsregister
). Хуже всего то, что структура каталогов OSX размещает двоичный файл отдельно от ресурсов. Фрагмент выше был написан, чтобы помочь найти каталог Firefoxdefaults/pref
./usr/bin/firefox
самом деле это не бинарный файл Firefox, поэтому я использую выходные данные,readlink
чтобы найти, куда он указывает, а затем найтиdefaluts/prefs
каталог оттуда. Кстати, о символьных ссылках: в этомls -al /usr/bin/* |grep -- '->' |wc -l
примере показано, что около 303 двоичных файлов в моей директории Ubuntu являются символическими ссылками. (около 16% из них). По этой причине приведенный выше код ** в конечном итоге должен быть изменен, чтобы рекурсивно разрешать символические ссылки, пока он не найдет канонический путь к двоичному файлу.type -P
вопрос, я недостаточно знаком с этой командой, чтобы ответить на вопрос. Возможно, вы можете уточнить немного. :)type
потому что она была основой первого (и принятого) ответа. Это встроенная оболочка, которая указывает, как указанные имена будут интерпретироваться, если они используются в качестве команд. Версия POSIX, которая довольно проста, описана здесь . … (Продолжение)Если программа работает, позвоните
источник
Путь к двоичным файлам указан в
$PATH
переменной.Вы можете увидеть его содержание с
env
.источник
$PATH
можно просмотреть сenv
, ноecho $PATH
будет менее многословным.Вы можете использовать команду « alias » в терминале, чтобы получить список всех ваших псевдонимов. Или, если вы находитесь в каталоге, вы можете использовать « pwd », чтобы показать ваш текущий путь.
Если вы знаете имя файла или его часть, то вы можете использовать « find », чтобы найти ваш файл.
источник
На MAC (OS X) вы можете сделать:
Теперь вы можете увидеть полный путь к вашему приложению в командной строке и запустить его оттуда, если хотите.
Взято из вики-шоу
источник