Mac终端将目录更改为当前的前查找器窗口[关闭]

Posted

技术标签:

【中文标题】Mac终端将目录更改为当前的前查找器窗口[关闭]【英文标题】:Mac Terminal change directory to current front finder window [closed] 【发布时间】:2013-08-29 16:24:46 【问题描述】:

标题说明了一切。我只是想知道输入什么命令将工作目录更改为在前面的 finder 窗口中打开的目录。

【问题讨论】:

请注意,有一些替代方案可用: 1. 如果您按住 Command 键将文件或文件夹拖到终端中,它会自动为您发送完整的 cd 命令,2. 您可以从查找并使用上下文菜单使用“文件夹中的新终端”服务(在系统偏好设置>键盘>服务中启用它)在当前选定的文件夹中打开一个终端,3.您可以拖动文件并文件夹到终端应用程序图标或终端窗口标签栏以在该位置打开一个新终端。 另见***.com/q/420456/754997 【参考方案1】:

我的回答基于对类似question about how to get the path of the front-most window in Objective-C and Cocoa 的回答(显然来自 Mac OS X 提示提示,这可能是您的确切问题)。我已经测试了该命令,它也可以使用包含空格的目录路径。

cd "`osascript -e 'tell application "Finder" to POSIX path of (target of window 1 as alias)'`"

使用 bash? 将此函数添加到您的 bash 配置文件中。

cdf () 
  finderPath=`osascript -e 'tell application "Finder"
                               try
                                   set currentFolder to (folder of the front window as alias)
                               on error
                                   set currentFolder to (path to desktop folder as alias)
                               end try
                               POSIX path of currentFolder  
                            end tell'`;
  cd "$finderPath"

【讨论】:

请注意,在“内联”版本中,“set myname to”是不必要的,因为您只是希望它返回值——您没有使用变量。 感谢您的提示!我已经删除了多余的变量。 如果我尝试在鱼中使用它,它会告诉我:fish: Unknown command 'insertion'... 有什么建议吗? @rassoh,fish 的语法略有不同,因此您需要修改语句。有一个oh-my-fish 插件正好提供了这个exact capability。 @Linville 哇,非常感谢您的提示!【参考方案2】:

使用 Finder 的 insertion location 属性也很有效 - 这会将工作目录更改为 Finder 中当前处于活动状态的文件夹(最后一次单击的窗口或桌面空间):

cd "`osascript -e "tell application \\"Finder\\" to get POSIX path of (insertion location as text)"`"

或者,将以下行添加到您的 bash 配置文件 (~/.bash_profile):

alias cdf='cd "`osascript -e "tell application \\"Finder\\" to get POSIX path of (insertion location as text)"`"'

【讨论】:

【参考方案3】:

在 Yosemite 中,我只需将文件夹从 Finder 窗口拖到码头上的终端图标顶部,终端就会打开到该文件夹​​。整齐是不是?无需脚本或服务。

【讨论】:

问题是我可以构建一个更复杂的脚本。 GUI 快捷方式在这种情况下无济于事。另外,有人已经提到了

以上是关于Mac终端将目录更改为当前的前查找器窗口[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将所有文件从文件夹和 Mac 终端中的所有子文件夹更改为 .txt [重复]

Vuex store - 将状态中的项目推送到状态数组导致数组中的前一个项目更改为当前状态项目

magnific popup:以编程方式将内容从弹出表单更改为模态微调器,然后返回表单

Mac下的常用终端命令

终端中的权限被拒绝

mac 当前位置打开终端