Komut satırından aynı ada sahip başka bir uygulama olduğunda uygulamayı geçerli dizinde aç


2

foo.appKomut satırından (kullanarak open) açmak istediğim bir uygulama adım var .

Klasör yapım şöyle:

~
+---bar
     +--- foo.app
+---baz
     +--- foo.app

barKlasörde bulunan uygulamayı açmak istiyorum , ancak yaparsam open -a foo.app, bazgeçerli çalışma dizim barklasörde olsa bile , klasörde bulunan uygulama açılacaktır .

open -a ./foo.appya da open -a ~/bar/foo.appçalışmıyor.

Yanıtlar:


1

Bu durumda, open -abir DEĞİLDİR istediğini; Bu -aseçenek bilinen uygulamaları başlatmak (belgelerin açılmasını ve doğru uygulamanın yapılmasını sağlayan Launch Services veritabanında dizine alınmış), yol adıyla değil, belirli bir uygulamayla dosya açmak için kullanılır.

Aradığın şey sadece düz açılış foo.app , tıpkı Finder'da çift tıklattığın gibi. Bunu yapmak için,

open foo.app

Bu, tam olarak Başlatma Hizmetleri veritabanını dahil etmeden tam olarak bu uygulamayı açacaktır.


0

açık bar / foo.app / İçindekiler / MacOS / foo

-A parametresini kullanıyorsanız open, .app uzantısını atlamanız gerekir.


.App uzantısını çıkarmamın önemi yok ve yürütülebilir dosya foo değilse ne olur? Çalıştırılabilir adı nasıl alabilirim? Örnek:bar/foo.app/Contents/MacOS/foobar
Tyilo

Genellikle .app paketi ve gerçek çalıştırılabilir dosya (Contents / MacOS / dizininde) aynı ada sahiptir. Bu nedenle, üst düzey dizin foo.app olarak adlandırılmışsa, yürütülebilir dosyanın foo.app/Contents/MacOS/foo olmasını beklerdim.
bne

Ama bu durumda değil ...
Tyilo

Ardından, doğru openkomutu yazabilmek için .app dizinine girip çalıştırılabilir dosyanın adını belirlemeniz gerekir . Bu uygulamaları nasıl edindiniz?
bne

Yürütülebilir ad aslında bir uygulamanın içinde toplanmış bir kavanozdur JavaApplicationStub. Ayrıca çalıştırılabilir adın Info.plist'te olduğu gibi saklandığını da öğrendim CFBundleExecutable.
Tyilo
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.