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.