35

Всякий раз, когда я запускаю cygwin, мне нужно переходить на несколько уровней к единственному каталогу, который мне нужен при использовании cygwin.

Как заставить Cygwin запускаться в этом конкретном каталоге по умолчанию ... т.е. каждый раз, когда я запускаю Cygwin, он уже будет в этом каталоге?

Я нашел некоторые вещи, которые могут быть или близки, но я не понимаю их, и я действительно не вижу результатов, когда я ищу эти (n00b) термины. Любая помощь будет отличной!

5 ответов5

45

Просто добавь

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

в конец вашего файла ~/.bashrc.

3

Определить "начать Cygwin"? Вы можете запускать серверы Cygwin при включении компьютера, но я предполагаю, что вы не это имеете в виду.

Если вы имеете в виду, что попадаете в определенную папку каждый раз, когда вы открываете приглашение оболочки, вы можете поместить это в ваш $ HOME/.bashrc

Отредактируйте ваш $ HOME/.bashrc с помощью редактора cygwin (тот, который использует окончания строк UNIX), добавьте строку

cd /whatever/directory/you/want

Если вы постоянно заходите в этот каталог, возможно, вам лучше создать псевдоним.

В вашем $ HOME/.bashrc положите:

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

Называй это как хочешь; Я просто использовал GT для "перехода туда" и пишу в верхнем регистре, потому что это облегчает отделение от встроенных команд, которые никогда не пишутся с заглавной буквы.

2

в последней строке вашего .bash_profile (или .profile) поместите cd your/dirctory/here

0

Это решение не требует редактирования .bashrc:

Ниже приведен фрагмент официальных документов mkpasswd:

Например, эта команда:

Пример 3.11. Использование альтернативного домашнего рута

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

поместит домашние каталоги локальных пользователей в каталог «Профили» Windows.

(ответ скопирован из аналогичного вопроса на stackoverflow, потому что мне больше нравится это решение, чем здесь)

0

скрипт на питоне

!!перед использованием добавьте .bashrc любую строку в конец !!

используйте name_script.py c:\path

path_bachrc - путь к .bashrc

cmd - путь к cygwin.bat

#***********************************************#
#   gangelXXX@gmail.com                         #
#***********************************************#
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)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .