16

When I have a Terminal window open, ⌘N opens a new one.

Is there any way to get the current directory in the new window to automatically be the same as it was on the window where I pressed ⌘N?

16

To accomplish this within a new window, go to Preferences within Terminal.app.

Within the General tab, you can adjust the behavior (you likely want to select Same Working Directory) for both new windows and new tabs.

Preferences

  • Oh, looks like I already had it enabled but must have messed it up somehow in my .bashrc. Thanks! – Bemmu Mar 24 '15 at 4:06
  • 2
    Three years later I found I just had some cd command at the end of said .bashrc, after removing that this started to work. – Bemmu Mar 9 '18 at 4:38
  • 1
    @Bemmu Ha. Glad you figured it out - been waiting... ;) – Scot Mar 9 '18 at 20:03
6

If you hit ⌘T in the Terminal, it will open another tab, which will be in the same directory as before :-) You can easily switch between the tabs using keyboard shortcuts too - ⌘-Shift-[ and ⌘-Shift-]

Enjoy!

  • This should be the answer. – CJWEB Nov 15 '18 at 23:56
  • You can also then drag the tab out to a separate window if you didn't want it tabbed – andynormancx Dec 13 '18 at 9:20
4

The problem is that Terminal doesn't know anything about what directory you're in.

But the shell does! So you can type:

open -a /Applications/Utilities/Terminal.app .

and it will open a new window on your current directory.

If you want to do this a lot, put the following in ~/.bashrc:

alias openhere='open -a /Applications/Utilities/Terminal.app .'

Then, all you will have to type is openhere to do the same thing.

  • 1
    Terminal does know your directory. The shell reports to Apple Terminal whenever directory changes; the code that enables this is in /etc/bashrc. – hamstergene Mar 24 '15 at 10:30
3

In Zshell, I need to do both this setting

enter image description here

and I need this in my .zshrc

# http://superuser.com/a/315029/4952
# Set Apple Terminal.app to resume directory... still necessary 2018-10-26
if [[ $TERM_PROGRAM == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]] {
  function chpwd {
    local SEARCH=' '
    local REPLACE='%20'
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
    printf '\e]7;%s\a' "$PWD_URL"
  }
  chpwd
}

I've tried without one or the other to no avail.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .