在Mac OS Finder中打开终端

682

是否有类似于Windows Powertoy中的“在此处打开命令窗口”功能的Mac OS插件?我通过Google搜索找到了一些插件,但想看看开发人员中哪个最好用。


14个回答

900
从 Mac OS X Lion 10.7 开始,终端就包含了这个功能作为服务。与大多数服务一样,默认情况下这些服务被禁用,因此您需要启用它才能在服务菜单中看到它。
“系统偏好设置 > 键盘 > 快捷键 > 服务”
启用“新建文件夹位置的终端”,还有“新建选项卡位置的终端”,后者会在前置终端窗口中创建一个选项卡(如果有,则创建新窗口)。这些服务在所有应用程序中工作,不仅限于 Finder,并且它们可以在文本中选择的文件夹和绝对路径上操作。
您甚至可以为它们分配命令键。
服务出现在每个应用程序菜单的“服务”子菜单中,以及上下文菜单(在文件夹或路径名称上控制-单击或右键单击)中。
当您在 Finder 中选择一个文件夹时,“新建文件夹位置的终端”服务将变为活动状态。您不能简单地打开文件夹并在原地运行服务。返回到父文件夹,选择相关文件夹,然后通过服务菜单或上下文菜单来激活服务。
此外,Lion 终端将在您将文件夹(或路径名)拖到终端应用程序图标时打开一个新的终端窗口,并且您还可以拖到现有窗口的选项卡栏中以创建一个新选项卡。
最后,如果您将文件夹或路径名拖到标签上(在标签栏中),并且前台进程是 shell,则会自动执行“cd”命令。 (在选项卡内部的终端视图拖动仅插入路径名本身,就像在旧版本的终端中一样。)
您还可以从命令行或 shell 脚本中执行此操作:
open -a Terminal /path/to/folder

这是在命令行中将文件夹/路径名拖到终端应用程序图标上的等效操作。

另外,Lion Terminal 还提供了新的服务来查找 man 页面: 在终端中打开 man 页面 将所选 man 页面主题显示在新的终端窗口中,在终端中搜索 man 页面 对所选文本执行 "apropos"。前者还可以理解 man 页面引用 ("open(2)")、man 页面命令行参数 ("2 open") 和 man 页面 URL ("x-man-page://2/open")。


8
不适用于Yosemite操作系统。 - Olcay Ertaş
2
@OlcayErtaş 什么不起作用?我回答中的所有内容在Yosemite 10.10.x上都能正常工作。 - Chris Page
2
我需要重新启动Finer吗?我不知道为什么,但我已经启用了“在文件夹中打开新终端”服务,但它没有起作用。 - Olcay Ertaş
13
要获取菜单项,您需要右键单击文件夹图标;不要导航到文件夹本身,而是其父文件夹。 - Jonathan E. Landrum
2
我可以通过右键菜单/服务使用它,但我无法通过键盘快捷键使用它。 - Can Poyrazoğlu
显示剩余3条评论

153

这个工具是一个小应用程序,您可以将它拖到Finder工具栏中,其图标非常匹配。它可以与Terminal、xterm(在X11下)和iterm一起使用。

https://github.com/jbtule/cdto#cd-to


56

我发现作为替代品不可或缺的应用程序是DTerm,它实际上在您的应用程序中打开了一个迷你终端。此外,它可以与几乎所有软件一起使用——Finder、XCode、PhotoShop等。


38

澄清(感谢 @vgm64):如果你已经在终端中,这让你可以快速切换到最上面的 Finder 窗口而不离开终端。这样,你就可以避免使用鼠标。

我已经将以下内容添加到我的.bash_profile中,这样我可以随时在终端中输入cdff

function ff { osascript -e 'tell application "Finder"'\
 -e "if (${1-1} <= (count Finder windows)) then"\
 -e "get POSIX path of (target of window ${1-1} as alias)"\
 -e 'else' -e 'get POSIX path of (desktop as alias)'\
 -e 'end if' -e 'end tell'; };\

function cdff { cd "`ff $@`"; };

这是来自macosxhints.com终端提示


"open ." 在当前目录下打开一个新的Finder窗口。 - jolvi
2
@jolvi 这与该答案所提供的相反。重点不在于在pwd打开“查找器”窗口,而是进入“查找器”已打开的目录。 - Jonathan E. Landrum
啊,对不起,当然你是对的。 - jolvi

14

请查看在此打开终端。它可能最接近“在此处打开命令窗口”。我曾使用>cdto,这非常相似,但这个工具似乎更擅长处理空格……但并不完美。

它非常好的地方是能够“检测应用程序启动时的按键事件,并将其用于修改脚本的行为”,允许脚本在按下⌘键时在最前面的终端窗口中打开一个新标签页。很妙的技巧。

同时请注意PCheese的回答;对于经常使用终端的用户来说,它可能更有用!


12

有一个非常好用且精简的在此处打开终端的更新版本,由 vgm64 d0k 发布。这个改动是由 james david low 完成的,他在他的网站上发布了新版本。只需下载OpenTerminalHere.zip,解压缩,将捆绑包移动到您的Library/Scripts文件夹,并从那里将其拖到Finder工具栏中。

它的特别之处在于,如果Terminal.app窗口已经打开,它会始终打开一个新标签页,非常实用!我还注意到该应用程序的按钮样式比由 redacted 发布的cdto更适合Snow Leopard Finder.app的风格。


这太棒了!请注意,您必须使用Command+拖动(而不仅仅是上面帖子中提到的拖动)将其拖到Finder工具栏中。然后,您就有了一个图标快捷方式,单击它将从任何文件夹终端。 - B. Nadolson

10

此外,您可以使用command-C从Finder中复制项目,然后跳转到终端(例如使用Spotlight或QuickSilver),输入“cd”,然后使用command-v简单粘贴即可。


4
我创建了一个包含三个应用程序的捆绑包,可以在查找器工具栏中使用。另外两个应用程序分别是:
  • 使用当前选择打开Textmate
  • 使用当前文件夹打开GitX
更多信息请参见: http://nslog.de/posts/71

3

虽然它的功能比你所需的稍微多一些,但我推荐Cocoatech的路径搜索器(Path Finder)给任何希望Finder拥有更强大功能的人。它包括一个工具栏按钮,可以打开当前目录的终端窗口,或者每个Finder窗口底部都有一个可收缩的终端命令行。此外还有许多其他功能我现在已经离不开了。这是一个非常成熟、稳定的软件。 http://cocoatech.com/


3
如果您安装了Big Cat Scripts (http://www.ranchero.com/bigcat/),您可以添加自己的上下文菜单(右键)项。我不认为它附带了一个打开终端的applescript,但我使用这个脚本(我不确定是我自己写的还是从别人的示例中借鉴的):
on main(filelist)
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            set frontWinPath to (get POSIX path of frontWin)
            tell application "Terminal"
                activate
                do script with command "cd \"" & frontWinPath & "\""
            end tell
        on error error_message
            beep
            display dialog error_message buttons ¬
                {"OK"} default button 1
        end try
    end tell
end main

类似的脚本还可以在右键单击时获取完整的文件路径,我认为这更加有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接