在Mac终端中设置默认目录

83

我只在终端(mac)上使用git,并且只在一个目录中使用git。是否可以将默认目录(打开终端时的目录)设置为我使用git的目录?如果可以,如何设置?

8个回答

93
从Mac OS X Lion 10.7开始,终端支持“恢复”功能,并默认自动恢复您退出时打开的终端,以及它们的工作目录。所以,您只需打开一个新终端并切换到您的git目录,然后在退出时将窗口保持打开状态。每次重新打开终端时,终端都会出现在同一目录中。(这默认适用于bash。如果您正在使用其他shell,则需要将/etc/bashrc中的代码改为适合您的shell。我在Resume Zsh-Terminal (OS X Lion) 上发布了zsh的代码。)
您还可以安排终端启动到特定目录的Shell。您可以自定义或创建“设置配置文件”以在终端启动时发出“cd”命令:
“终端 > 首选项 > 设置 > [配置文件] > Shell > 启动 > 运行命令”
启用“运行命令”和“在shell内运行”,然后将命令设置为cd your_git_directory。当您使用该配置文件打开新终端时,它将进入您的git目录。
我建议您使用底部的操作(“齿轮”)菜单复制当前默认配置文件(如果您从未更改过它,则默认为“基本配置文件”),然后自定义该配置文件。
最后,要自动打开使用此配置文件的终端,请将“终端 > 首选项 > 启动”中的“启动时打开”设置为您的自定义配置文件。(在Lion上,“恢复”会恢复退出时打开的窗口,而不是执行启动操作。正如我提到的,您可以在退出时保留此终端打开状态,并在下次打开终端时进行恢复。或者,您可以按Option修饰键退出;Quit菜单项将更改为“退出并放弃窗口”,下一次打开终端时它将执行启动操作。)

非常有用,谢谢!我已经配置了终端启动选项卡,每个选项卡都是我的Xcode项目和git子模块目录,包括标题和颜色。每次启动时都会自动执行git fetch和git status命令。太棒了! - Max MacLeod
“运行命令”方式似乎无法正常工作,如果您使用的不是“默认登录Shell”(例如,需要更快的启动时间http://apple.stackexchange.com/questions/41743/how-do-i-speed-up-new-terminal-tab-loading-time)... [?] 无论如何,iterm2似乎允许所需的行为,回到它<sigh>。 - rogerdpack
如果您将“打开 Shell 时”或“运行命令”中的任何一个设置为 /etc/shells 中找不到的命令,则终端会认为它不是 Shell 并禁用诸如“上次登录”的横幅和“在 Shell 内运行”的行为。那就是这种解决方法可行的唯一原因。最好避免使用此解决方案,而是定期清除系统日志,特别是如果您首先检查日志大小-如果日志大小不太大,则没有需要解决的问题。(请考虑向苹果提交有关登录性能的错误报告。) - Chris Page
2
我建议将其cd到您想要的目录,然后跟随一个clear命令,以使提示符看起来清新。在启动时运行此命令:“cd <path_to_directory> && clear”。 - tgordon18

67

我喜欢选择“新窗口以相同的工作目录打开”。我找到的所有答案(许多SO)都会破坏这个设置,因为它们总是跳转到新的主目录。以下是我在我的.profile(或.bashrc等)顶部使用的代码:

export START="/Users/michael/my/starting/directory"
if [[ $PWD == $HOME ]]; then
    cd $START
fi

这将在启动时检查您是否处于HOME目录中,并在是的情况下更改为新的START目录。这样新窗口就不会自动运行此命令。

唯一的注意事项是,如果您在实际的HOME目录中并打开一个新窗口,它将带您到START。这是预期的。


10
我找了很久,最终找到了最好的解决方案。 - Henrique Müller
2
谢谢!最佳解决方案 - Nikolay Dyankov
但是它是否会在新选项卡上保留最后的工作文件夹? - Volatil3
@Volatil3 试一下。是的。 - Michael Ozeryansky

43

尝试使用echo "cd $directory" >> ~/.bash_profile


10
我必须使用:echo "cd "\pwd` >> ~/.bash_profile` - meetar
自从macOS Catalina(2019)以来,macOS的默认shell已更改为zsh(而不是bash),因此您需要编辑/重定向到`/.zprofile`。 - Mint

20
如果你正在使用例如ZSH这样的终端工具,只需在你的配置文件.zshrc中添加以下字符串:
# Working directory
cd ~/Desktop

或者例如:

# Working directory
cd $HOME/Desktop

用你自己的喜好替换path

它只是会返回给ZSH命令,你在终端看不到它,并且它将以你选择的path开始。


1
可以工作,但是当从不同目录打开一个新标签时,它将使用在.zshrc中设置的目录而不是上一个标签中的目录。 - Stéphane Bruckert

1
使用窗口组。将您的shell窗口排列成您想要的启动方式 - 在每个窗口中cd到所需目录,设置颜色,Shell-编辑标题等。然后进入“窗口” - “保存窗口组...”。给它一个名称,勾选“终端启动时使用窗口组”。下次启动时,这个排列将成为您的起点。

1

我修改了@Michael Ozeryansky的答案,解决了他提到的问题:

唯一的注意事项是,如果您在实际的HOME目录中并打开一个新窗口,则会将您带到START。这是预期的。

要使第二个终端窗口选项卡从主目录或任何其他目录开始:

export START="/Users/michael/my/starting/directory"
export DIR = "path/to/directory"
if [[ $PWD == $HOME ]]; then
     cd $START
else 
     cd $HOME  // or any other dir: cd $DIR
fi

0
如果您修改了.zshrc文件,则“在文件夹中打开新终端”服务快捷方式将无法在Mac上工作。我不建议这样做。

enter image description here


-1
在iTerm2终端中,我执行以下操作:
  • 个人资料-->打开个人资料-->点击编辑个人资料按钮 输入图像描述 输入图像描述
  • 转到个人资料选项卡-->常规
  • 更新工作目录 输入图像描述

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