Saya menginstal aplikasi dan sekarang saya dapat mengaksesnya melalui terminal sebagai aplikasi saya. Itu adalah alias. Bagaimana saya bisa menemukan path lengkap ke file?
26
Anda dapat menggunakan type
dan which
untuk menentukan apa perintah tertentu bash
, dan, jika itu adalah aplikasi, di mana ia berada.
$ 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
Perintah which
dan type -P
hanya berfungsi untuk program pada Anda PATH
, tentu saja, tetapi Anda tidak akan dapat menjalankan yang lain hanya dengan mengetikkan nama perintah mereka.
Jika Anda mencari cara sederhana untuk menentukan di mana bundel aplikasi OS X (GUI) diinstal (seperti yang digunakan misalnya dengan open
perintah), Anda dapat menjalankan AppleScript pendek berikut dari baris perintah:
$ osascript -e 'tell application "System Events" to POSIX path of (file of process "Safari" as alias)'
/Applications/Safari.app
Ini mensyaratkan bahwa program yang dipermasalahkan (Safari dalam contoh) berjalan.
Ini adalah metode yang saya gunakan saat ini untuk mencari direktori aplikasi Firefox di OSX dan Linux. Harus mudah diadopsi ke aplikasi lain. Diuji pada OSX 10.7, Ubuntu 12.04, Debian Jessie
sumber
type
dantype -P
tidak? Apakah kode non-OSX berfungsi pada OS X? Jika tidak, dapatkah Anda menjelaskan mengapa tidak? Jika ya, mengapa Anda memiliki dua versi?/bin
atau/usr/bin
, dll melainkan diinstal ke/Applications/My3rdPartyApp.app
dan biner disimpan dalam subdirektoriContents/MacOS
sehingga cukup sulit untuk menggunakan teknik lintas-platform untuk menentukan lokasi aplikasi (karenanya penggunaanlsregister
) Lebih buruk lagi, struktur direktori OSX menempatkan biner di lokasi yang terpisah dari sumber daya. Cuplikan di atas ditulis untuk membantu menemukandefaults/pref
direktori Firefox ./usr/bin/firefox
sebenarnya bukan binari Firefox, jadi saya menggunakan outputreadlink
untuk menemukan di mana ia menunjuk, dan kemudian menemukandefaluts/prefs
direktori dari sana. Di samping catatan, tentang symlinking: Melakukanls -al /usr/bin/* |grep -- '->' |wc -l
menggambarkan sekitar 303 binari di direktori itu konfigurasi Ubuntu saya sebenarnya symlinks. (sekitar 16% dari mereka) Untuk alasan ini, kode di atas ** pada akhirnya * harus dimodifikasi untuk menyelesaikan symlink secara rekursif sampai menemukan jalur kanonik ke biner.type -P
pertanyaan, saya tidak cukup akrab dengan perintah itu untuk menjawab pertanyaan. Mungkin Anda bisa sedikit menguraikan. :)type
karena itu adalah dasar dari jawaban pertama (& diterima). Ini adalah builtin shell yang menunjukkan bagaimana nama yang ditentukan akan ditafsirkan jika digunakan sebagai perintah. Versi POSIX-nya, yang agak sederhana, dijelaskan di sini . … (Lanjutan)Jika program sedang berjalan, hubungi
sumber
Path binari direferensikan dalam
$PATH
variabel.Anda dapat melihat isinya dengan
env
.sumber
$PATH
dapat dilihat denganenv
, tetapiecho $PATH
akan kurang bertele-tele.Anda dapat menggunakan perintah " alias " di terminal untuk mendaftar semua alias Anda. Atau jika Anda berada di direktori, Anda dapat menggunakan " pwd " untuk menunjukkan jalur Anda saat ini.
Jika Anda tahu nama file atau bagian nama file, maka Anda dapat menggunakan " find " untuk mencari file Anda.
sumber
Pada MAC (OS X) yang dapat Anda lakukan:
Sekarang Anda dapat melihat path lengkap ke aplikasi Anda pada baris perintah dan menjalankannya dari sana jika Anda mau.
Diambil dari wikihow
sumber