Cómo predeterminar a otro directorio en lugar del directorio de inicio

180

Estoy desarrollando en una máquina de Windows. El único lugar que necesito para la línea de comandos de Linux es Git Bash. El problema es: cuando lo abro, estoy en el directorio de inicio. Tengo que cambiar el directorio a mi espacio de trabajo, como:

cd ../../../d/work_space_for_my_company/project/code_source

¿Puedo envolver esto en un archivo .sh para que ya no tenga que escribirlo a mano? Esto debería ser simple pero no tengo ningún conocimiento sobre la línea de comandos de Linux. Estoy realmente agradecido si me puede guiar a través de cómo crear ese archivo .sh.

Xi Zhang
fuente
55
Las respuestas a continuación son correctas para solucionar esto permanentemente, sin embargo, incluso sin estas, no debería escribir esto todo el tiempo. Git Bash incluye un historial de comandos que persiste entre sesiones (a diferencia de las consolas de Windows), por lo que cada vez que desee repetir este comando, en lugar de escribirlo nuevamente, simplemente escriba Ctrl-r y luego parte del comando, por ejemplo. ctrl-r../dy aparecerá el comando, y luego escriba enter. En general, invierta unos minutos en aprender a usar el historial de comandos y luego lo usará mucho, mientras repite los diversos comandos de git.
Stephen Hosking
Para su información, aquí está la alternativa WSL bash C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(o si usa cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data) donde -ihace que las teclas de flecha funcionen
KCD

Respuestas:

101

Simplemente escriba esa línea en un archivo "cd.sh", luego haga esto desde su indicador de shell:

. ./cd.sh

O puede crear un alias o función en su $HOME/.bashrcarchivo:

foo() { cd /d/work_space_for_my_company/project/code_source ; }

Si el nombre del directorio incluye espacios u otros metacaracteres de shell, necesitará comillas; no hará daño agregarlos incluso si no son necesarios:

foo() { cd "/d/Work Space/project/code_source" ; }

(Tenga en cuenta que he omitido el ../../..; no lo necesita).

EDITAR: si agrega una línea

foo

a su .bashrcdespués de la definición de la función, su cáscara se iniciará en ese directorio. O simplemente puede usar el cdcomando directamente en su .bashrcsi no va a necesitar usar la función más tarde.

(El nombre fooes solo un ejemplo; debe elegir un nombre más significativo).

Keith Thompson
fuente
55
Como señala @orip, también podrías hacer lo mismo cden tu .bashrc. Pero si lo convierte en una función, puede usar el comando nuevamente más tarde, después de haber cambiado a otro directorio.
Keith Thompson
2
Para explicar el "../../ ..", el comando que dio especifica una ruta relativa a su directorio actual; "../../../d/work_space_for_my_company/project/code_source"sube tres niveles desde su directorio actual (que resulta ser $HOME), luego baja a "d", luego baja a "trabajar ...". El entorno de shell git bash se "/d"refiere a lo que Windows llama "D:\". Usar un nombre de ruta absoluto "/d/work_space_for_my_company/project/code_source", es más simple y no depende de dónde $HOMEse encuentre.
Keith Thompson
2
¿Dónde puedo encontrar este .bashrcarchivo?
ptamzz
2
@ptamzz: normalmente se creará un .bashrcarchivo en su directorio de inicio cuando se configure su cuenta. Si no, puedes crearlo tú mismo.
Keith Thompson
1
¿Dónde encuentras "cd.sh"? Y cuando dices directorio de inicio. ¿Estás hablando del directorio de inicio de la aplicación actual o ??
WowBow
374

Aquí hay una solución más Windows-ish: haga clic derecho en el acceso directo de Windows que usa para iniciar git bash y haga clic en Propiedades. Cambie el valor de "Iniciar en" a su ruta de espacio de trabajo deseada.

Editar: también verifique que el valor Target no incluya la opción --cd-to-home como se indica en los comentarios a continuación.

David Siegal
fuente
13
El único problema con esta solución es que no está configurando la ruta predeterminada para el directorio de inicio, al que se accede con~
worc
67
Esto funcionó para mí. Además, también tuve que eliminar la opción --cd-to-home en el comando de inicio.
ChinLoong
2
En caso de que tenga el acceso directo anclado en la barra de tareas de Windows 7, deberá hacer clic derecho dos veces en el programa como lo sugiere lifehacker.com/5475752/…
manat
11
Convino en que esta es la solución más sencilla, pero debería modificarse absolutamente para incluir la eliminación de "--cd-to-home" en el objetivo. Sin ese último cambio, siempre estará predeterminado en la carpeta C: \ Users [nombre] (a menos que haya modificado su configuración).
Zeus56
2
Para aclarar, en el acceso directo el "Destino" debe ser %WINDIR%\System32\bash.exey el "Iniciar en" debe ser C:\Tempo cualquier ruta que desee.
demoncodemonkey
45

Agregue la línea al .bashrcarchivo en el directorio de inicio (cree el archivo si no existe):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc
orip
fuente
55
Sé que llego muy tarde a la fiesta, ¡pero gracias por detener la función sin sentido! :)
Felipe Gerard
1
Esto fue perfecto. Fui a mi .bashrc.localy agregó cd ~/Desktop/repos/;al fondo. ¡Trabajado como un encanto! cambiar el fondo de .bashrctambién funcionaría.
Michael Dimmitt
Acabo de crear el archivo .bashrc en ~ y la próxima vez que abrí git Bash se quejó de que no tenía .bash_profile y otro archivo, así que los creó para mí. ¡Y después de reabrir git Bash funcionó sin flores!
Pini Cheyni el
elimine la opción --cd-to-home en el comando de inicio (Propiedades de acceso directo)
telebog
38

Uso ConEmu (muy recomendable en Windows) donde tengo una tarea para iniciar Git Bash como

ingrese la descripción de la imagen aquí

Tenga en cuenta el botón "Directorio de inicio ..." en la parte inferior. Agrega una -new_console:d:<path>al comando de inicio de Git Bash. Haz que apunte a donde quieras

Juri
fuente
Gracias por compartir la tarea personalizada, no pude hacer que funcione. ¿Cómo puedo ejecutar comandos simples de Windows después de eso, como hacer ping a Google.com por ejemplo?
Iman Mohamadi
1
@ImanMohamadi Por cosas como que prefiero crear secuencias de comandos con los que se agrega a su PATH variable de entorno st u puede exec cmds como p-gpara hacer ping google, etc ...
Juri
23

Esto puede ayudarte.

descripción de la imagen

  1. Haga clic derecho en git bash -> propiedades
  2. En la pestaña Shorcut -> Comenzar en campo -> ingrese su ruta definida por el usuario
  3. Asegúrese de que el campo Destino no incluya --go-to-homeo continuará comenzando en el directorio especificado en su variable INICIO

Eso es.

Krish
fuente
Lo intenté pero no funciona cuando la ruta está en otra unidad como d: \ projects \ test
Ray
Windows 10 no muestra esa pestaña para git bash, pero puedes hackearlo usando estas 3 pequeñas líneas de código, guardarlo en algún archivo **. Bat 1. d: 2. cd data 3.git bashsi haces doble clic en el archivo bat y luego se abrirá en la ubicación deseada
Krish
1
Mira ese Targetcampo, no tiene parámetros. Por defecto contiene el -go-to-homeque debe borrar de allí para que funcione.
Kurapika
1
Funciona para mí Objetivo: "C: \ Archivos de programa \ Git \ git-bash.exe" (IMPORTANTE) Inicio en: d: / xampp / htdocs /
raftaar1191
1
También funciona para mí con el mismo objetivo que @ raftaar1191 (eliminé la opción "--cd-to-home"), y configuré la línea "inicio en" en "C: \ wamp \ www", ¡muy útil!
nayfun
10

También acabo de cambiar la configuración "Iniciar en" del icono de acceso directo a: %HOMEDRIVE%/xampp/htdocs/

Francisco
fuente
9

Esto lo hará asumiendo que desea que esto suceda cada vez que abra la línea de comando:

echo cd ../../../d/work_space_for_my_company/project/code_source >> ~/.bashrc

Ahora, cuando abra el shell, subirá tres directorios desde casa y cambiará a code_source.

Este código simplemente agrega la línea "cd ../../../d/work_space_for_my_company/project/code_source" a un archivo llamado ".bashrc". El ">>" crea un archivo si no existe y luego se agrega. El archivo .bashrc es útil para ejecutar comandos en el momento del inicio / inicio de sesión (es decir, cargar módulos, etc.)

Usagi
fuente
9

(Lea la advertencia a continuación)

Una manera realmente simple de hacer esto en Windows (funciona con git bash, posiblemente otros) es crear una variable ambiental llamada HOME que apunte al directorio de inicio deseado.

  1. Haga clic derecho en mi computadora y elija propiedades
  2. Elija la configuración avanzada del sistema (la ubicación varía según la versión de Windows)
  3. Dentro de las propiedades del sistema, elija la pestaña avanzada
  4. En la pestaña avanzada, elija Variables ambientales (botón inferior)
  5. En "variable del sistema" verifique si ya tiene una variable llamada INICIO. Si es así, edite esa variable resaltando el nombre de la variable y haciendo clic en editar. Haga que la nueva variable nombre la ruta deseada.
  6. Si HOME aún no existe, haga clic en "nuevo" en las variables del sistema y cree una nueva variable llamada HOME cuyo valor sea la ruta deseada.

Variable ambiental

NOTA: Esto puede cambiar la forma en que funcionan otras cosas. Por ejemplo, para mí cambia dónde viven mis archivos de configuración .ssh. En mi caso, quería que mi casa fuera U: \, porque ese es mi lugar principal en el que pongo el trabajo del proyecto y la configuración de la aplicación (es decir, realmente es mi directorio de "casa").

EDITAR 23 de junio de 2017: esta respuesta continúa recibiendo votos positivos ocasionales, y quiero advertir a las personas que, aunque esto "funcione", estoy de acuerdo con @AnthonyRaymond en que no es recomendable. Esto es más una solución temporal o una solución si no le importa si se rompen otras cosas. Cambiar su casa no causará daños activos (como eliminar su disco duro) pero es probable que cause molestias insidiosas más adelante. Cuando comiences a tener problemas molestos en el futuro, probablemente no recordarás este cambio ... ¡así que es probable que te rasques la cabeza más adelante!

geneorama
fuente
No entiendo por qué las ediciones sugeridas por @asalle (principalmente sugiriendo que también podría editar las variables del sistema de usuario) fueron rechazadas Bamsworld fish_ball y greg-449, las ediciones parecían razonables.
geneorama
Esta es una forma demasiado destructiva para ser una buena idea. Puede afectar muchas otras aplicaciones e incluso ventanas. No es recomendable
Anthony Raymond
@AnthonyRaymond Como noté, cambiar "HOME" puede tener otras consecuencias, sin embargo, no diría que es necesariamente destructivo. De hecho, podría ser beneficioso si desea que su HOME sea una ubicación específica o si otra aplicación ha configurado HOME en una ubicación no deseada. En cualquier caso, creo que esta respuesta arroja algo de luz sobre cómo se establece el directorio predeterminado.
geneorama
@AnthonyRaymond, aunque estoy de acuerdo, que en el contexto de esta pregunta, establecer un hogar para un proyecto en particular (por ejemplo ../../../d/work_space_for_my_company/project/code_source) es una mala idea. En términos generales, sin embargo, hay momentos en los que HOME no necesita ser/c/Users/[current user name]/
geneorama
Si desea que una carpeta especial apunte a otra ubicación, cree un enlace simbólico. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx No tenemos forma de saber qué programa usa la variable HOME, si siento que es un poco destructivo.
Anthony Raymond
7

Haga clic con el botón derecho en el enlace de la aplicación Git Bash, vaya a Propiedades y modifique la ubicación Iniciar en para que sea la ubicación desde la que desea que comience.

Michael Stramel
fuente
5

Desde un elemento del menú Inicio anclado en Windows 10

  1. Abra la ubicación del archivo del acceso directo anclado
  2. Abra las propiedades de acceso directo.
    1. Eliminar --cd-to-homearg
    2. actualización de Start inruta
  3. Vuelva a fijar al menú de inicio a través de agregado recientemente

captura de pantalla de ubicación de archivo abierto

captura de pantalla de acceso directo apropiado

Actualizar captura de pantalla de las propiedades de acceso directo

pin a través de screnshot agregado recientemente


¡Gracias a todas las otras respuestas sobre cómo hacer esto! Quería proporcionar instrucciones de Win 10 ...

manchado de mahn
fuente
4

Para ventanas: siga estos pasos:

  1. Vaya a Windows Home> haga clic derecho en la aplicación "Git Bash".
  2. Propiedades> Atajo
  3. Cambie estas dos configuraciones: (a) Eliminar: cd-to-homede target (b) Escriba la ruta de la carpeta que desea comenzar con git en "Iniciar en".

Esto funcionó para mí :)

MD Nehaluddin Haider
fuente
3

Si desea tener una lista de opciones de proyectos cuando abra GIT bash:

  • edite ppathen el encabezado del código a su ruta de proyectos git , coloque este código en el archivo .bashrc y cópielo en su directorio $ HOME (en Win Vista / 7 generalmente es c: \ Users \ $ YOU )

.

#!/bin/bash
ppath="/d/-projects/-github"
cd $ppath
unset PROJECTS
PROJECTS+=(".")
i=0

echo
echo -e "projects:\n-------------"

for f in *
do
    if [ -d "$f" ]
    then
        PROJECTS+=("$f")
        echo -e $((++i)) "- \e[1m$f\e[0m"
    fi
done


if [ ${#PROJECTS[@]} -gt 1 ]
then
    echo -ne "\nchoose project: "
    read proj
    case "$proj" in
        [0-`expr ${#PROJECTS[@]} - 1`]) cd "${PROJECTS[proj]}" ;;
        *) echo " wrong choice" ;;
    esac
else
    echo "there is no projects"
fi
unset PROJECTS
  • es posible que desee configurar este archivo como ejecutable dentro de GIT bash chmod + x .bashrc (pero probablemente sea redundante, ya que este archivo se almacena en el sistema de archivos ntfs )
s1w_
fuente
2

Mi acceso directo de Git Bash en Windows se quejó cuando puse el CD en mi directorio de trabajo en ~ / .bashrc

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

Entonces git creó este .bash_profile:

$ cat ~/.bash_profile
# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

Que hace el trabajo.

Alternativamente, puede eliminar el .bashrc nuevamente y poner el comando cd en .bash_profile:

$ rm ~/.bashrc
$ echo "cd Source/Repos" >~/.bash_profile

$ cat ~/.bash_profile
cd Source/Repos

Una vez hecho esto, puede cerrar la ventana y volver a abrirla usando el acceso directo de su escritorio y el mensaje le indicará que su ubicación ahora está donde la quería, parece que este es mi caso:

Administrator@raptor1 MINGW64 ~/Source/Repos
$
Dr. RAI
fuente
2

Si escribe este comando: echo cd d:/some/path >> ~/.bashrc

Anexa la línea cd d:/some/patha .bashrc. El >>crea un archivo si no existe y luego anexa.

mtpultz
fuente
1

debe ser cd d:/work_space_for_....

sin el :no funciona para mí

larsbo
fuente
1

Otra solución para los usuarios de Windows será copiar el archivo Git Bash.lnk en el directorio desde el que necesita comenzar y ejecutarlo desde allí.

skip405
fuente