MacOS `open -a` gibi belirli bir uygulama nasıl açılır?


14

Varsayılan Terminal'de çalışan macOS'ta şunu bashyazabilirim:

open -a Firefox http://www.wikipedia.org

Firefox veya başka bir tarayıcıyla bir URL açmak için. Ayrıca, örneğin bir programı başlatmak open -a mapsve varsayılan programda bir dosyayı açmak için de çalışır open file.pdf.

Aynı şeyi, varsayılan GNOME Terminalinde de çalışan Ubuntu'da nasıl yapabilirim bash? İle bir dosya veya URL açabileceğimi biliyorum xdg-open /path/to/fileve varsayılan tarayıcı ile açabiliyorum sensible-browser. Ubuntu'nun belirli uygulamalardaki dosyaları, uygulamaları veya dosyaları açma konusunda genel bir komutu var mı?

Her bashiki makinede, 3.2.57(1)-releasemacOS'ta ve 4.4.19(1)-releaseUbuntu'da çalışıyorum.


Hiç Mac kullanmadım, bana neden kullanacağını söyleyebilir misin open -a Firefox http://www.wikipedia.org? Yapamaz mısın firefox http://www.wikipedia.org? openProgramları açarken asıl mesele işe yaramaz bir özellik gibi görünüyor bash.
JoL

1
MacOS'ta Bash farklı çalışır, örneğin komutunuz hatayı verir bash: firefox: command not found. FirefoxProgram adıyla aynı hata .
miguelmorin

3
bashtamamen aynı şekilde çalışır; Ubuntu'da olduğundan farklı yüklenmiş Firefox. MacOS'ta, örneğin, /Applications/Firefox.app/Contents/MacOS/firefox-binkomut satırından çalıştırabilirsiniz . Firefox.appLinux çeşitli yaklaşık dağınık olabileceği özel sadece yürütülebilir değil içeren klasörün tür değil ama dosyalar /usr/bin/, /usr/lib, /etcvb dizinleri. Finder, örneğin üzerine çift tıkladığınızda gerçek uygulamanın nasıl çalıştırılacağını bilir Firefox.app. openözel klasörü komut satırından "çalıştırmanın" bir yoludur.
chepner

4
bashFarklı şekilde çalışmaz : firefox bir OS X uygulaması ( Firefox.app) olarak yüklenir ve normal PATH'de değildir. Kullanmanın başka bir nedeni open -a, çıkana kadar beklemek yerine başlattığı uygulamayı düzgün bir şekilde arka planlandırmasıdır.
alexis

Yanıtlar:


10

Özellikle istediğiniz programın adını kullanabilirsiniz (eğer komut satırı aracı olarak kullanılabiliyorsa).

Örneğin, URL'ler:

firefox duckduckgo.com
chromium-browser askubuntu.com

PDF:

evince foo.pdf
okular bar.pdf

Görüntüler:

gpicview foo.png
feh bar.jpeg

Metinler:

gedit foo.txt
mousepad /etc/config
leafpad bar.xml

Video / Müzik:

mpv  foo.mp3
vlc  bar.mp4

Programın terminalden bağımsız olarak çalıştırılmasını istiyorsanız, bunu yapmayı tercih ettiğim yol budur:

nohup program args &

Örneğin:

nohup firefox askubuntu.com &

Çıkışları her zamanki gibi yeniden yönlendirebileceğinizi unutmayın, örneğin:

nohup firefox duckduckgo.com &> /dev/null &

2
eog picture.jpggnome-masaüstü yüklüyse görüntüler için de :)
Videonauth

1
@Videonauth Evet, ya da başka türlü araçlar;)
Ravexina

2
@BaptisteCandellier openBaşka bir program çağırmak için çağrı yapmıyorum . Neden sadece diğer programı doğrudan aramıyorsunuz? Ne işe yarar open? Bu cevap, belirli uygulamaları açmak için yapılacak doğal şeyi yansıtır.
JoL

1
@BaptisteCandellier Kabul ediyorum ve macOS'ta openhem varsayılan uygulamada hem de belirli uygulamalarda dosya ve klasör açmak için çalışıyor. Görünüşe göre orijinal dosyalar için bashfarklı bir yol xdg-openizledi ve geri kalanı için uygulama adları.
miguelmorin

2
MacOS'ta farklı olan başka bir şey, opençalıştırıldığı konsoldan ayrılmış uygulamayı başlatmasıdır, yani konsol kapanırsa uygulama açık kalacaktır. Ubuntu'da nohupaynı davranışı elde etmek için komutun kullanılması gerekir . (çalıştırdığınız her komut için nohup ve redirecting output ile her komutun önünü doldurmak yorucu hale geldiğinden, özel bir kısayol tanımlamak daha mantıklı olabilir)
Undercat alkışlar Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.