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!
15 Answers
Just add
cd /path/to/directory/you/care/aboutto the bottom of your ~/.bashrc file.
5in the last line of your .bash_profile (or .profile), put cd your/dirctory/here
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/wantIf 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.
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
#***********************************************#
# #
#***********************************************#
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 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/passwdwould 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)