43

Whenever I start cygwin, I need to cd several levels down to the only directory that I care about when using cygwin.

How can I get cygwin to start in this particular directory by default...i.e., each time I start Cygwin it will be in that directory already?

I found some things that may be it, or close, but I don't understand them, and there's really no results when I search for these (n00b) terms. Any help would be great!

1
  • Just a little tip: using cygwin you don't need to cd several times - you can do it with one command (suggestions will still appear for subdirectories).
    – Line
    Jan 4, 2018 at 7:59

5 Answers 5

59

Just add

cd /path/to/directory/you/care/about

to the bottom of your ~/.bashrc file.

5
  • 2
    where is that ~/.bashrc file in windows installation
    – Erdem Ece
    Nov 17, 2014 at 12:02
  • 5
    It depends on how you installed Cygwin, but the Windows path to your Cygwin home directory is usually C:\cygwin\home\%USERNAME%, which would make the Windows path to ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
    – garyjohn
    Nov 17, 2014 at 19:55
  • what if the dafault home directory is a directory where I don't want to put any file.
    – user428047
    Mar 14, 2015 at 15:56
  • @Arturo I think you mess up two things - your user home directory and Cygwin home directory. .bashrc file is anyway there if you install Cygwin.
    – Line
    Jan 13, 2018 at 10:12
  • currently bashrc file there is in C:\cygwin64\home\my_user_name folder
    – CodeToLife
    Mar 10, 2021 at 14:24
2

in the last line of your .bash_profile (or .profile), put cd your/dirctory/here

2

Define "start cygwin"? You can run cygwin servers when you power your machine up, but I'm assuming that's not what you mean.

If you mean, end up in a specific folder every time you open a shell prompt, you can put that in your $HOME/.bashrc

Edit your $HOME/.bashrc using a cygwin editor (one that uses UNIX line endings), add a line

cd /whatever/directory/you/want

If you're constantly going to this directory, you're probably better off making an alias as well.

In your $HOME/.bashrc put:

alias GT='cd /whatever/directory/you/want'

Call it whatever you want; I just used GT for "go there", and I uppercase because it makes it easy to separate from builtin commands, which are never capitalized.

0

python script

!!before use add .bashrc any string to the end!!

use name_script.py c:\path

path_bachrc - path to .bashrc

cmd - path to cygwin.bat

#***********************************************#
#   [email protected]                         #
#***********************************************#
import argparse
import subprocess
import os

path_bachrc = 'c:/PP/cygwin/home/adm/.bashrc'
cmd = 'c:\PP\cygwin\Cygwin.bat'

def delEndLineFromFile(filename):
    with open(filename, 'r') as f:
        aList = f.readlines()

    bList = aList[0:-1]

    with open(filename, 'w') as fd:
        fd.writelines(bList)


parser = argparse.ArgumentParser()
parser.add_argument("newPath", type=str, help="New path in .bachrc cygwin")
args = parser.parse_args();

delEndLineFromFile(path_bachrc);

p = args.newPath;
pNew = 'cd /cygdrive/' + p[:1] + p[2:].replace('\\', '/')
print(pNew)

with open(path_bachrc, 'a') as f:
    f.write(pNew)

PIPE = subprocess.PIPE
p = subprocess.Popen(cmd, shell = True)
4
  • 2
    Please explain. Jul 10, 2013 at 4:11
  • python script use name_script.py c:\path\
    – user236976
    Jul 10, 2013 at 5:25
  • path_bachrc - path to .bashrc
    – user236976
    Jul 10, 2013 at 5:25
  • cmd - path to cygwin.bat
    – user236976
    Jul 10, 2013 at 5:26
0

This solution doesn't require editing .bashrc:

Below is a snippet from the official docs on mkpasswd :

For example, this command:

Example 3.11. Using an alternate home root

$ mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

would put local users home directories in the Windows 'Profiles' directory.

(answered copied from similar question on stackoverflow because I like this solution more that those here)

You must log in to answer this question.

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