¿Cómo cambio el directorio de inicio predeterminado en Cygwin?


36

Cada vez que inicio cygwin, necesito cd varios niveles hasta el único directorio que me importa cuando uso cygwin.

¿Cómo puedo hacer que cygwin se inicie en este directorio en particular de forma predeterminada ... es decir, cada vez que inicie Cygwin ya estará en ese directorio?

Encontré algunas cosas que pueden ser, o cercanas, pero no las entiendo, y realmente no hay resultados cuando busco estos términos (n00b). ¡Cualquier ayuda sería genial!


Solo un pequeño consejo: usando cygwin no necesita hacer un CD varias veces; puede hacerlo con un comando (las sugerencias seguirán apareciendo para los subdirectorios).
Línea

Respuestas:


48

Solo agrega

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

al final de su archivo ~ / .bashrc.


1
dónde está ese archivo ~ / .bashrc en la instalación de Windows
Erdem Ece

44
Depende de cómo instaló Cygwin, pero la ruta de Windows a su directorio de inicio de Cygwin es C:\cygwin\home\%USERNAME%, por lo general , la ruta de Windows a ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn

¿Qué pasa si el directorio de inicio predeterminado es un directorio donde no quiero poner ningún archivo?
Arturo

@Arturo Creo que arruinas dos cosas: tu directorio de inicio de usuario y el directorio de inicio de Cygwin. El archivo .bashrc está de todos modos allí si instala Cygwin.
Línea

3

Definir "iniciar cygwin"? Puede ejecutar servidores cygwin cuando enciende su máquina, pero supongo que eso no es lo que quiere decir.

Si quiere decir, termine en una carpeta específica cada vez que abra un indicador de shell, puede ponerlo en su $ HOME / .bashrc

Edite su $ HOME / .bashrc usando un editor cygwin (uno que use terminaciones de línea UNIX), agregue una línea

cd /whatever/directory/you/want

Si constantemente va a este directorio, probablemente sea mejor hacer un alias también.

En su $ HOME / .bashrc ponga:

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

Llámalo como quieras; Acabo de utilizar GT para "ir allí", y en mayúscula porque facilita la separación de los comandos incorporados, que nunca están en mayúscula.


2

en la última línea de su .bash_profile (o .profile), ponga cd your/dirctory/here


0

script de python

!! antes de usar agregue .bashrc cualquier cadena al final !!

utilizar name_script.py c:\path

path_bachrc - ruta a .bashrc

cmd - camino a 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
Por favor explique.
Roney Michael

el script de Python usa name_script.py c: \ path \
user236976

path_bachrc - ruta a .bashrc
user236976

cmd - ruta a cygwin.bat
user236976

0

Esta solución no requiere edición .bashrc:

A continuación se muestra un fragmento de los documentos oficiales en mkpasswd:

Por ejemplo, este comando:

Ejemplo 3.11. Usando una raíz de inicio alternativa

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

colocaría los directorios de inicio de los usuarios locales en el directorio 'Perfiles' de Windows.

(respondido copiado de una pregunta similar en stackoverflow porque me gusta más esta solución que las de aquí)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.