从命令行打开一个新的Finder *选项卡*


5

我想知道是否有一种方法可以从命令行打开一个新的查找器选项卡(不是窗口)。我可以做,例如,

open .

但这会打开一个新窗口。在最近最活跃的现有查找器窗口中打开一个新选项卡会很不错。


欢迎使用Ask Different :)是否可以打开Finder首选项并选中常规选项卡下的“在选项卡中打开文件夹而不是新窗口”。
Nimesh Neema

是的,它已启用。
msailor

Answers:


2

你真的不能通过任何“普通”shell命令,但你可以通过shell运行AppleScript来完成任务。

这是一个带有fnt“Finder New Tab” 命令的Bash函数:

function fnt()
{
    osascript -e 'tell application "System Events" to perform action "AXPress" of menu item "New Tab" of menu "File" of menu bar item "File" of menu bar 1 of application process "Finder"'
}

将以上内容添加bash function到您的~/.bash_profilẽ/.profile文件中以使用它。添加后,重新启动终端或使用source当前终端窗口中的命令来访问该fnt功能。

应该适用于在“文件”菜单中具有“新选项卡”命令的任何版本的macOS。您还需要将终端添加到:系统首选项>安全和隐私>隐私可访问性

据我所知,相对于Finder中的标签,已经在Mojave中对AppleScript进行了一些改进,但我仍然使用macOS Sierra 10.12.6并且无法测试。


可悲的是,这对我来说似乎没有用。当我运行该命令时,它会在默认的起始目录中打开一个新的Finder窗口。(它也打印出来action AXPress of menu item New Tab of menu File of menu bar item File of menu bar 1 of application process Finder)。
msailor

第一个问题很奇怪 - 您使用的是哪个版本的macOS?
克里斯托弗·斯通

通过在函数中的命令中附加'1> / dev / null'可以消除第二个问题。
克里斯托弗斯通

我在10.12.6。
msllor

如果您尚未将Terminal.app添加到系统偏好设置>安全和隐私>隐私>辅助功能,请尝试执行此操作,看看它是否有所作为。
克里斯托弗斯通

0

以下是我提出的解决方案,基于如何在新标签(Mavericks)中复制当前打开的Finder视图的答案

    function newtab()
{
osascript -e "tell application \"Finder\"
    activate
    set t to target of Finder window 1
    set toolbar visible of window 1 to true
end tell
tell application \"System Events\"
    keystroke \"t\" using command down
end tell
tell application \"Finder\"
    set target of Finder window 1 to POSIX file \"`pwd`\"
end tell" 1> /dev/null
}

所有转义的引号都不是很优雅,但似乎有必要允许命令替换。

感谢Christopher Stone将我指向AppleScript的方向!不幸的是他的解决方案对我不起作用。

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.