Як змінити каталог запуску за замовчуванням у Cygwin?


36

Кожен раз, коли я запускаю cygwin, мені потрібно перенести кілька рівнів в єдиний каталог, який мені важливий при використанні cygwin.

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

Я знайшов деякі речі, які це можуть бути або близькі, але я їх не розумію, і справді немає результатів, коли я шукаю ці (n00b) терміни. Будь-яка допомога була б чудовою!


Лише невелика порада: використовуючи cygwin, вам не потрібно копіювати компакт-диск кілька разів - це можна зробити за допомогою однієї команди (пропозиції все одно з’являться для підкаталогів).
Рядок

Відповіді:


48

Просто додайте

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

внизу вашого файлу ~ / .bashrc.


1
де це ~ / .bashrc файл у встановленні Windows
Erdem Ece

4
Це залежить від того, як ви встановили Cygwin, але зазвичай це шлях Windows до домашнього каталогу Cygwin C:\cygwin\home\%USERNAME%, який би зробив шлях до Windows ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn

що робити, якщо домашній каталог dafault - це каталог, куди я не хочу ставити жоден файл.
Артуро

@Arturo Я думаю, що ви зіпсуєте дві речі - домашній каталог користувача та домашній каталог Cygwin. Файл .bashrc все одно є, якщо встановити Cygwin.
Рядок

3

Визначте "запустити cygwin"? Ви можете запускати cygwin-сервери під час включення машини, але я припускаю, що це не так.

Якщо ви маєте на увазі, потрапляйте у певну папку кожного разу, коли ви відкриваєте підказку оболонки, ви можете помістити це у свій $ HOME / .bashrc

Відредагуйте $ HOME / .bashrc за допомогою редактора cygwin (той, який використовує закінчення рядків UNIX), додайте рядок

cd /whatever/directory/you/want

Якщо ви постійно переходите до цього каталогу, вам, ймовірно, краще також створити псевдонім.

У вашому $ HOME / .bashrc покладіть:

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

Назвіть це все, що завгодно; Я просто використав GT для "іди туди", і я прописую великі регістри, оскільки це дозволяє легко відокремитись від вбудованих команд, які ніколи не використовуються з великої літери.



0

сценарій python

!! Перед використанням додати .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)

2
Будь ласка, поясніть.
Роні Майкл

сценарій python використовує name_script.py c: \ path \
user236976

path_bachrc - шлях до .bashrc
user236976

cmd - шлях до cygwin.bat
user236976

0

Це рішення не потребує редагування .bashrc:

Нижче наведено фрагмент з офіційних документів на mkpasswd:

Наприклад, ця команда:

Приклад 3.11. Використання альтернативного домашнього кореня

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

помістить домашні каталоги місцевих користувачів у каталог «Профілі» Windows.

(відповів скопійовано з аналогічного запитання на stackoverflow, тому що мені подобається це рішення більше, ніж тим, що тут)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.