Terminal: open-command -a flag - Perché non è necessario per alcuni software?

0

Quando uso questo comando per aprire un file di testo ...

> open myFile.text

... quindi funziona perfettamente bene. TextEdit si apre e posso leggere / modificare il file. Funziona anche con i file PDF.

Ma quando lo faccio ...

> open Terminal.app

... poi ricevo un messaggio di errore:

The file /Users/michael/Downloads/Terminal.app does not exist.

Ho scoperto che devo aggiungere un flag -a:

> open -a Terminal.app

Quindi il comando funziona come previsto: viene aperto un secondo terminale.

La pagina man del comando open dice:

* - un'applicazione

Specifica l'applicazione da utilizzare per l'apertura del file *

Ok, beh ... ma ...

Perché alcuni software funzionano SENZA usare l'opzione -a? Mentre altri software richiedono che sia lì?

    
posta mizech 04.02.2017 - 11:05
fonte

1 risposta

4

Stai facendo due cose diverse qui.

Il testo uno apre un file con l'applicazione che si apre associa all'estensione del file.

Il Terminale si sta provando ad aprire un'applicazione con nome.

Quello che apre è, per prima cosa, usando il nome completo del percorso, per il file che viene chiamato, poiché si assegna solo un nome di file, è un percorso relativo che cerca quel file nella directory corrente. (Così per Terminal., App dice che non riesce a trovare il file e poi si arrende). Quando ha trovato il file, cerca l'applicazione predefinita per l'estensione del file, quindi vede se l'applicazione è in esecuzione, altrimenti avvia l'applicazione. Finalmente aperto invia un messaggio all'applicazione per gestire il file.

Il passaggio -a per aprire dice apre per usare l'applicazione nominata, cerca nel suo database le app aperte in precedenza e quindi non ha bisogno del percorso completo per trovare Terminal.app

    
risposta data 04.02.2017 - 12:58
fonte

Leggi altre domande sui tag