Comando equivalente Linux per comando "aperto" su Mac / Windows?


46

Provenendo da Mac OS X, è possibile digitare:

$ open yourfilehere.txt

e il tuo file si aprirà come se lo avessi aperto da Finder.


Su Windows, è possibile digitare:

> start yourfilehere.txt

e si aprirà come se lo avessi aperto da Explorer.


Su Ubuntu, vorrei poter aprire i file allo stesso modo in GNOME. Qual è il comando?


1
In un po 'di relazione ho trovato questo piccolo gioiello per aprire Finder in un certo percorso (non necessariamente il percorso corrente): aprire -a Finder. oppure apri -a Finder / tuo / percorso / qui
Mikko Ohtamaa,

Ho appena visto che su Windows, questo è il startprogramma. Su OS X, questo è il openprogramma. Su Ubuntu Linux, questo è il seeprogramma. nel libro automate-the-noioso-stuff-with-python , ma non ho ricevuto alcuna informazione sul seecomando da Google.
CodyChan,

Risposte:


39

xdg-open è quello che stai cercando.

Potrebbe piacerti questo frammento che ho inserito nei miei file .bashrc in modo che, sia che stia usando cygwin su Windows, Linux o OSX, posso usare i comandi start o open e funzionano alla grande:

case "$OSTYPE" in
   cygwin*)
      alias open="cmd /c start"
      ;;
   linux*)
      alias start="xdg-open"
      alias open="xdg-open"
      ;;
   darwin*)
      alias start="open"
      ;;
esac

Buoni commenti, xdg-open è davvero un'opzione migliore di gnome-open, come spiegato di seguito. Ho aggiornato i miei script personali qualche tempo fa, ma ho dimenticato di aggiornare questa risposta.

ATTENZIONE: questo sovrascriverà la funzionalità di openvt(terminale virtuale) e startdi init.


1
Quella sceneggiatura BASH è un'ottima idea.
jweede,

9
cygwin: prova "cygstart"
Doug Harris,

13
gnome-open è specifico di GNOME. xdg-open è disponibile su tutte le distro conformi a Freedesktop.org.
Avdi,

@DougHarris, +1. cygstartpuò essere ulteriormente preferibile, come nei segnalibri di Emacs, consente di continuare a utilizzare Emacs. Con start, il mio Emacs è congelato.
Brady Trainor,

Quindi, iniziare è bello se non vuoi fare affidamento sulla disponibilità di Cygwin. start ""o ha "start \"\""appena lavorato per me. (Il set di virgolette "" impedisce a Emacs di restare bloccato.)
Brady Trainor,

34
xdg-open xyz.bar

si aprirà xyz.bar(potrebbe essere un file o un URL) in qualsiasi ambiente compatibile con freedesktop con l'applicazione registrata per xyz.baril tipo di. Vedi anche la documentazione qui (pagina man di xdg-open) .

In practive questo dovrebbe quindi chiamare kde-open, gnome-open, exo-openo forse anche open, a seconda dell'ambiente desktop corrente (KDE, Gnome, XFCE, OS X).


3
funziona anche. Qual è la differenza tra xdg-opene gnome-open?
jweede,

5
beh, xdg-open è stato sviluppato dalla gente di freedesktop.org che pretende di creare lo "standard", mentre gnome-open è stato sviluppato dalla gente di gnome ... che ottieni solo quando installi gnome. personalmente mi piacciono di più le cose di freedesktop.org.
Akira,

2
In effetti, xdg-open è la risposta giusta qui. gnome-open è specifico per i desktop su cui è installato GNOME. xdg-open sarà disponibile su qualsiasi sistema compatibile con freedesktop.
Avdi,

2
"xdg-open sarà disponibile su qualsiasi sistema compatibile con freedesktop" significa, in pratica, che indipendentemente dal fatto che tu stia usando GNOME, KDE, Xfce o qualsiasi altro ambiente, xdg-openfarà la cosa giusta , usando il tipo di file-to -programma di mappatura dell'ambiente in esecuzione.
RavuAlHemio,

È quasi equivalente al comando "aperto" di Mac, ma non del tutto - sto scoprendo (almeno con Ubuntu 14) che quando lo uso su una directory, la directory si apre in background. Preferirei che porti la finestra appena aperta in primo piano. Qualche modo per farlo? (Scusatemi, sono un totale sostenitore di Linux.)
Joe Strout,

10

Puoi persino scrivere un piccolo wrapper attorno a gnome-open per aprire più file con un solo comando:

for i in $*
do
    gnome-open "$i"
done

Inseriscilo in uno script di shell chiamato open e

open *.c

aprirà tutti i file c nella directory corrente.


2
Script utile, ma ti consigliamo di sostituire $ * con "$ @" (comprese le virgolette) per gestire correttamente i nomi di file con spazi.
pimlottc,

1

Puoi usare il gnome-opencomando nel tuo Terminale. Una volta nella directory di cui si desidera aprire una finestra del sistema operativo, digitare il Terminale:

gnome-open .

Questo aprirà una finestra che mostra cosa c'è in questa cartella. Allo stesso modo, è possibile specificare una sottocartella situata in questa directory sostituendo .il nome della sottocartella.

Nota che se gnome-opennon funziona, potrebbe essere necessario solo installarlo. Puoi farlo usando Synaptic ( sudo apt-get updatee quindi sudo apt-get install synapticnel tuo terminale, molto comodo durante l'installazione del pacchetto perché installa correttamente tutte le dipendenze) o installa direttamente Gnome Shell nel tuo Terminale:sudo apt-get install gnome-shell


-1

Inserisci questo nel terminale: ./yourfile

yourfileè il nome del file che si desidera aprire o eseguire. Puoi anche usare questo comando per eseguire script bash. (Ricorda di inserire l'estensione del file!)

gnome-open è quello che stai cercando.

Un'altra citazione da un altro poster.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.