从终端打开当前目录到文件浏览器?


15

我的当前目录从我的主目录深埋在多个子文件夹层中。如果要在基于GUI的文件浏览器中打开此目录,则必须双击文件夹后才能访问它。这非常耗时。另一方面,只需很少的按键操作和几次点击选项卡按钮,就可以很容易地通过终端访问它。

我想知道是否有一种方法可以将终端中的当前目录打开到文件浏览器上。这样做的命令是什么?

作为参考,我有一个ubuntu系统,但我想知道各种Linux发行版中的命令是什么。


2
这实际上取决于您使用的操作系统和GUI环境。例如,在OS X系统上,我的头open /path/to/some/directory将打开该目录的Finder窗口。在Windows上,这是对explorer.exe KDE或GNOME或LXDE的调用,对于每个可以使用的环境而言,可能都有一些独特之处。简而言之,您的特定用例需要更多细节。
DopeGhoti 2015年

那将取决于您使用的特定“文件浏览器”或窗口系统。作为参考,在Mac OS X上,open .将在当前目录中打开Finder窗口。您的系统上可能存在类似的命令。
dhag 2015年

您应该编辑您的问题,以包括您正在使用/想要使用的基于GUI的文件浏览器。
Anthony Geoghegan 2015年

@drewbenn:我会将其发布为答案,因为它适用于不同的环境。
saiarcot895 2015年

Answers:


26

xdg-open .

xdg-openxdg-utils软件包的一部分,该软件包通常默认安装在许多发行版(包括Ubuntu)中。它旨在用于多个桌面环境,并为您的桌面环境中的文件类型调用默认处理程序。

您可以传递目录,文件或URL,它将为该参数打开正确的程序。例如,在我的KDE系统上:

  • xdg-open . 在Dolphin文件管理器中打开当前目录
  • xdg-open foo.txt 在emacsclient中打开foo.txt,我已将其配置为.txt文件的默认处理程序
  • xdg-open http://www.google.com/ 在我的默认网络浏览器中打开google.com

该应用程序将作为一个单独的窗口打开,您将在终端中看到提示,并且可以发出其他命令或关闭终端,而不会影响新的GUI窗口。

我通常会在上打印一堆错误消息stderr,但我只是忽略它们。

编辑:
添加参数xdg-open . >/dev/null 2>&1重定向错误和输出。此通话不会阻止您的终端。将其绑定到类似别名filemanager='xdg-open . >/dev/null 2>&1'可以派上用场。


金色的 谢谢
Adil Saju

9

几乎任何GUI应用程序(在X窗口系统上)都可以从该GUI的终端窗口中打开。要打开任何GUI应用程序,请在shell提示符下键入可执行文件的名称。大多数文件浏览器都将目录作为命令行参数,因此通常应将其.作为参数传递。

这是一些流行系统的一些示例,大多数基于X的系统都类似地工作。

在Gnome上,您可以nautilus直接运行(默认文件浏览器),或者在Gnome 2上,可以使用gnome-open已配置的Gnome文件处理程序应用程序打开任何文件(包括目录):

$ nautilus .

要么

$ gnome-open .

KDE上,有两种流行的文件浏览器,我不知道类似于的命令gnome-open,尽管gnome-open可以在KDE中执行,但默认情况下会打开Gnome应用程序。

$ dolphin .

要么

$ konquerer .

如注释中所述,在OS Xopen上可以使用类似的命令行程序。

$ open .

如果您不知道系统文件浏览器的可执行文件名怎么办?

如果在Gnome 2上,请使用gnome-open .如果在OS X上,请致电open .。每一个都将为您的GUI环境执行配置的文件浏览器。

如果您不知道窗口系统中的此类命令,那么这是一种使用带有ps可理解选项-u USER-o FORMAT以下命令的系统来查找系统的方法:

  1. 在终端窗口中,键入 ps -u$USER -o comm > /tmp/$$A
  2. 在您的GUI中,启动文件浏览器。
  3. 返回终端窗口,键入ps -u $USER -o comm > /tmp/$$B(注意B后缀,这是与步骤1 不同的文件)。
  4. 同样在终端中,键入diff /tmp/$$[AB]

应该显示文件浏览器的名称。如果在调用两次之间的时间内,另一个程序恰巧在您的用户ID下启动,则您可能会看到多个名称ps

例如:

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

如果您不知道系统使用的文件浏览器,如何从命令行中查找?
Paul

@Paul,请参阅更新的答案。谢谢。
RobertL 2015年

2

nautilus据我所知,Ubuntu使用默认文件浏览器。因此,要从终端打开某个文件夹,可以键入以下内容:

nautilus /path/to/your/dir

要么

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

nautilus会自动从被调用的终端上分离自己的终端,但是假设您正在使用其他文件浏览器,并且您想关闭从中调用文件浏览器的终端,则可以使用nohup它。假设您正在使用thunar(另一个文件浏览器),则可以键入以下内容:

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

-1

只需使用 gio open

采用 -

gio open .
gio open example/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.