Aprire la directory corrente da un terminale in un browser di file?


15

La mia directory corrente è sepolta in profondità in più livelli di sottocartelle dalla mia directory home. Se voglio aprire questa directory in un browser di file basato su GUI , devo fare doppio clic su cartella dopo cartella per raggiungerla. Questo richiede molto tempo. D'altra parte, con pochissimi tasti premuti e più volte premendo il pulsante tab, è facilmente raggiungibile tramite un terminale.

Voglio sapere se esiste un modo per aprire la directory corrente in un terminale su un browser di file. Qual è il comando per fare questo?

Per riferimento, ho un sistema Ubuntu, ma mi piacerebbe sapere quali sono i comandi tra le varie distribuzioni di Linux.


2
Dipende molto dal sistema operativo e dall'ambiente della GUI che stai utilizzando. Ad esempio, dalla parte superiore della mia testa, su un sistema OS X, open /path/to/some/directorysi aprirà una finestra del Finder per quella directory. Su Windows, è una sorta di invocazione di explorer.exe In KDE o GNOME o LXDE, probabilmente ci sono incantesimi unici per ogni ambiente che possono essere usati. In breve, sono necessari ulteriori dettagli per il tuo caso d'uso specifico.
DopeGhoti,

Ciò dipende dallo specifico "esploratore di file" o dal sistema di finestre che stai utilizzando. Come riferimento, su Mac OS X, open .si aprirà una finestra del Finder nella directory corrente. Un comando simile potrebbe esistere sul tuo sistema.
Dhag,

È necessario modificare la domanda per includere il file explorer basato su GUI che si sta utilizzando / si desidera utilizzare.
Anthony Geoghegan,

@drewbenn: vorrei pubblicarlo come risposta, poiché funzionerà per ambienti diversi.
saiarcot895,

Risposte:


26

xdg-open .

xdg-open fa parte del pacchetto xdg-utils , che è comunemente installato di default in molte distribuzioni (incluso Ubuntu). È progettato per funzionare per più ambienti desktop, chiamando il gestore predefinito per il tipo di file nell'ambiente desktop.

È possibile passare una directory, un file o un URL e si aprirà il programma appropriato per quel parametro. Ad esempio, sul mio sistema KDE:

  • xdg-open . apre la directory corrente nel file manager Dolphin
  • xdg-open foo.txt apre foo.txt in emacsclient, che ho configurato per essere il gestore predefinito per i file .txt
  • xdg-open http://www.google.com/ apre google.com nel mio browser Web predefinito

L'applicazione si apre come una finestra separata e riceverai un prompt nel tuo terminale e puoi emettere altri comandi o chiudere il terminale senza influire sulla nuova finestra della GUI.

Di solito ricevo un sacco di messaggi di errore stampati stderr, ma li ignoro.

Modifica: l'
aggiunta degli argomenti xdg-open . >/dev/null 2>&1reindirizza gli errori e l'output. Questa chiamata non bloccherà il tuo terminale. Associare questo ad un alias come filemanager='xdg-open . >/dev/null 2>&1'può tornare utile.


D'oro. Grazie
Adil Saju,

9

Quasi qualsiasi applicazione GUI (su sistemi X Window) può essere aperta da una finestra terminale all'interno di quella GUI. Per aprire qualsiasi app GUI, digitare il nome dell'eseguibile al prompt della shell. La maggior parte dei browser di file accetta una directory come argomento della riga di comando, quindi di solito è necessario passare .come parametro.

Ecco alcuni esempi di alcuni sistemi popolari, la maggior parte dei sistemi basati su X funzionano in modo simile.

Su Gnome, puoi eseguire direttamente nautilus(il browser di file predefinito) oppure su Gnome 2, puoi usare gnome-openper aprire qualsiasi file (comprese le directory) con l'applicazione configurata per il gestore di file Gnome:

$ nautilus .

o

$ gnome-open .

Su KDE , ci sono due browser di file popolari, non sono a conoscenza di un comando simile a gnome-open, sebbene gnome-openpossa essere eseguito all'interno di KDE, ma per impostazione predefinita apre le app di Gnome.

$ dolphin .

o

$ konquerer .

Su OS X , come menzionato nei commenti, è openpossibile utilizzare un programma simile a riga di comando .

$ open .

Cosa succede se non si conosce il nome eseguibile del browser dei file del sistema?

Se su Gnome 2, usa gnome-open .If su OS X, chiama open .. Ognuno di questi eseguirà il browser di file configurato per l'ambiente della GUI.

Se non conosci questo comando nel tuo sistema a finestre, ecco un modo per scoprirlo sui sistemi con un pscomando che comprende le opzioni -u USERe -o FORMAT:

  1. Nella finestra del terminale, digitare ps -u$USER -o comm > /tmp/$$A
  2. Nella tua GUI, avvia il browser dei file.
  3. Nella finestra del terminale, digitare ps -u $USER -o comm > /tmp/$$B(Notare il Bsuffisso, questo è un file diverso dal passaggio 1).
  4. Anche nel terminale, digitare diff /tmp/$$[AB].

Dovrebbe visualizzare il nome del tuo browser di file. È possibile che tu possa vedere più di un nome, se si verifica l'avvio di un altro programma con il tuo ID utente durante l'intervallo tra le chiamate a ps.

Per esempio:

$ ps -u $USER -o comm > /tmp/$$A
$ # open file browser in gui
$ ps -u $USER -o comm > /tmp/$$B
$ diff /tmp/$$[AB]
95a96
> nautilus

Se non sai quale browser di file ha il tuo sistema, come puoi scoprire dalla riga di comando?
Paolo,

@Paul, vedi la risposta aggiornata. Grazie.
RobertL

2

Ubuntu utilizza come browser di file predefinito nautilusper quanto mi ricordo. Pertanto per aprire una determinata cartella dal terminale è possibile digitare qualcosa di simile al seguente:

nautilus /path/to/your/dir

o

cd /path/to/your/dir && nautilus .

nautilussi disconnette automaticamente dal terminale in cui è stato chiamato, ma supponiamo che tu stia utilizzando un altro browser di file e che desideri chiudere il terminale da cui hai chiamato il tuo browser di file, puoi utilizzarlo nohupper farlo. Se stai usando, diciamo, thunar(un altro browser di file), puoi digitare quanto segue:

nohup thunar /path/to/your/dir & exit

-1

Basta usare gio open

Uso -

gio open .
gio open example/

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.