Comment utiliser par défaut un autre répertoire au lieu du répertoire personnel

180

Je développe sur une machine Windows. Le seul endroit dont j'ai besoin pour la ligne de commande Linux est Git Bash. Le problème est: lorsque je l'ouvre, je suis dans le répertoire personnel. Je dois changer le répertoire de mon espace de travail, comme:

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

Puis-je envelopper ceci dans un fichier .sh pour ne plus avoir à le taper à la main? Cela devrait être simple mais je n'ai aucune connaissance de la ligne de commande Linux. Je suis vraiment apprécié si vous pouvez m'expliquer comment créer ce fichier .sh.

Xi Zhang
la source
5
Les réponses ci-dessous sont correctes pour résoudre ce problème de manière permanente, mais même sans celles-ci, vous ne devriez pas le taper à la main à chaque fois. Git Bash inclut un historique des commandes qui persiste entre les sessions (contrairement aux consoles Windows), donc chaque fois que vous voulez répéter cette commande, au lieu de la taper à nouveau, tapez simplement Ctrl-r puis une partie de la commande, par exemple. ctrl-r../det la commande apparaîtra, puis tapez entrée. En général, investissez quelques minutes pour apprendre à utiliser l'historique des commandes, puis vous l'utiliserez beaucoup, en répétant les différentes commandes git.
Stephen Hosking
Pour info, voici l'alternative WSL bash C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(ou si vous utilisez cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data) où -iles touches fléchées fonctionnent
KCD

Réponses:

101

Écrivez simplement cette ligne dans un fichier "cd.sh", puis faites ceci à partir de l'invite du shell:

. ./cd.sh

Ou vous pouvez créer un alias ou une fonction dans votre $HOME/.bashrcfichier:

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

Si le nom du répertoire comprend des espaces ou d'autres métacaractères shell, vous aurez besoin de guillemets; cela ne fera pas de mal de les ajouter même s'ils ne sont pas nécessaires:

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

(Notez que j'ai omis le ../../.. ; vous n'en avez pas besoin.)

EDIT: Si vous ajoutez une ligne

foo

à votre .bashrcaprès la définition de la fonction, votre shell démarrera dans ce répertoire. Ou vous pouvez simplement utiliser la cdcommande directement dans votre.bashrc si vous n'avez pas besoin d'utiliser la fonction plus tard.

(Le nom foon'est qu'un exemple; vous devriez choisir un nom plus significatif.)

Keith Thompson
la source
5
Comme @orip le souligne, vous pouvez aussi bien faire le cddans votre .bashrc. Mais si vous en faites une fonction, vous pourrez réutiliser la commande plus tard, après avoir changé de répertoire.
Keith Thompson
2
Pour expliquer le "../../ ..", la commande que vous avez donnée spécifie un chemin relatif à votre répertoire courant; "../../../d/work_space_for_my_company/project/code_source"monte de trois niveaux à partir de votre répertoire actuel (qui se trouve être $HOME), puis descend à "d", puis descend à "work ...". L'environnement shell git bash fait "/d"référence à ce que Windows appelle "D:\". L'utilisation d'un nom de chemin absolu,, "/d/work_space_for_my_company/project/code_source"est plus simple et ne dépend pas de l'endroit où vous vous trouvez $HOME.
Keith Thompson
2
Où puis-je trouver ce .bashrcfichier?
ptamzz
2
@ptamzz: Normalement, un .bashrcfichier sera créé dans votre répertoire personnel lors de la configuration de votre compte. Sinon, vous pouvez le créer vous-même.
Keith Thompson
1
Où trouvez-vous "cd.sh"? Et quand vous dites répertoire personnel. Parlez-vous du répertoire d'accueil de l'application actuelle ou ??
WowBow
374

Voici une solution plus Windows: faites un clic droit sur le raccourci Windows que vous utilisez pour lancer git bash, puis cliquez sur Propriétés. Remplacez la valeur de "Démarrer dans" par le chemin de l'espace de travail souhaité.

Modifier: vérifiez également que la valeur cible n'inclut pas l'option --cd-to-home comme indiqué dans les commentaires ci-dessous.

David Siegal
la source
13
le seul problème avec cette solution est que vous ne définissez pas le chemin par défaut du répertoire personnel, celui auquel vous ~
accédez
67
Cela a fonctionné pour moi. De plus, j'ai également dû supprimer l'option --cd-to-home dans la commande de démarrage.
ChinLoong
2
Si vous avez le raccourci épinglé sur la barre des tâches de Windows 7, vous devrez faire un double clic droit sur le programme comme suggéré par lifehacker.com/5475752
manat
11
A convenu qu'il s'agit de la solution la plus simple, mais qu'elle devrait absolument être modifiée pour inclure la suppression du "--cd-to-home" dans la cible. Sans cette dernière modification, vous utiliserez toujours par défaut le dossier C: \ Users [nom] (sauf si vous avez modifié votre configuration).
Zeus56
2
Pour clarifier, dans le raccourci, la "cible" doit être %WINDIR%\System32\bash.exeet le "Démarrer dans" doit être C:\Tempou le chemin que vous voulez.
demoncodemonkey
45

Ajoutez la ligne au .bashrcfichier dans le répertoire personnel (créez le fichier s'il n'existe pas):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc
orip
la source
5
Je sais que je suis super en retard à la fête, mais merci d'avoir arrêté la fonction absurde! :)
Felipe Gerard
1
C'était parfait. Je suis allé à mon .bashrc.localet ajouté cd ~/Desktop/repos/;au bas. A travaillé comme un charme! changer le bas de .bashrcfonctionnerait également.
Michael Dimmitt
Je viens de créer le fichier .bashrc à ~ et la prochaine fois que j'ai ouvert git Bash, il s'est plaint que je n'avais pas .bash_profile et un autre fichier, donc il les a créés pour moi. Et après la réouverture de git Bash, il fonctionnait sans fleurs!
Pini Cheyni
supprimez l'option --cd-to-home dans la commande de démarrage (Propriétés du raccourci)
telebog
38

J'utilise ConEmu (fortement recommandé sous Windows) où j'ai une tâche pour démarrer Git Bash comme

entrez la description de l'image ici

Notez le bouton "Répertoire de démarrage ..." en bas. Il ajoute un -new_console:d:<path>à la commande de démarrage de Git Bash. Faites-le pointer où vous voulez

Juri
la source
Merci d'avoir partagé la tâche personnalisée, je n'ai pas pu la faire fonctionner. Comment puis-je exécuter des commandes Windows simples après cela, comme envoyer un ping à Google.com par exemple?
Iman Mohamadi
1
@ImanMohamadi Pour des choses comme ça, je préfère créer des scripts avec vous ajoutez à votre variable d'environnement PATH st u pouvez exécuter des cmds comme p-gpour le ping de google etc ...
Juri
23

Cela peut vous aider.

description de l'image

  1. Faites un clic droit sur git bash -> propriétés
  2. Dans l'onglet Shorcut -> Commencer dans le champ -> entrez votre chemin défini par l'utilisateur
  3. Assurez-vous que le champ Target ne comprend pas --go-to-homeou il continuera à démarrer dans le répertoire spécifié dans votre variable HOME

C'est tout.

Krish
la source
J'ai essayé mais cela ne fonctionne pas lorsque le chemin est dans un autre lecteur comme d: \ projects \ test
Ray
Windows 10 n'affiche pas cet onglet pour git bash, mais vous pouvez le pirater en utilisant ces 3 petites lignes de code, enregistrez-le dans un fichier **. Bat 1. d: 2. cd data 3.git bashsi vous double-cliquez sur le fichier bat, il s'ouvrira à l'emplacement souhaité
Krish
1
Regardez ce Targetchamp, il n'a pas de paramètres. Par défaut contient -go-to-homece qui doit effacer à partir de là pour que fonctionne.
Kurapika
1
Cela fonctionne pour moi Cible: "C: \ Program Files \ Git \ git-bash.exe" (IMPORTANT) Commencez dans: d: / xampp / htdocs /
raftaar1191
1
Cela fonctionne pour moi aussi avec la même cible que @ raftaar1191 (j'ai supprimé l'option "--cd-to-home"), et j'ai configuré la ligne "start in" sur "C: \ wamp \ www", très utile!
nayfun
10

Je viens également de modifier le paramètre "Démarrer dans" de l'icône de raccourci pour: %HOMEDRIVE%/xampp/htdocs/

Francis
la source
9

Cela le fera en supposant que vous souhaitiez que cela se produise chaque fois que vous ouvrez la ligne de commande:

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

Maintenant, lorsque vous ouvrez le shell, il déplacera trois répertoires de home vers le haut et changera en code_source.

Ce code ajoute simplement la ligne "cd ../../../d/work_space_for_my_company/project/code_source" à un fichier nommé ".bashrc". Le ">>" crée un fichier s'il n'existe pas, puis l'ajoute. Le fichier .bashrc est utile pour exécuter des commandes au moment du démarrage / de la connexion (c'est-à-dire pour charger des modules, etc.)

Usagi
la source
9

(Veuillez lire l'avertissement ci-dessous)

Un moyen vraiment simple de le faire dans Windows (fonctionne avec git bash, éventuellement avec d'autres) est de créer une variable d'environnement appelée HOME qui pointe vers le répertoire personnel de votre choix.

  1. Faites un clic droit sur mon ordinateur et choisissez les propriétés
  2. Choisissez les paramètres système avancés (l'emplacement varie selon la version de Windows)
  3. Dans les propriétés du système, choisissez l'onglet avancé
  4. Dans l'onglet avancé, choisissez Variables d'environnement (bouton du bas)
  5. Sous "variable système", vérifiez si vous avez déjà une variable appelée HOME. Si tel est le cas, modifiez cette variable en mettant en surbrillance le nom de la variable et en cliquant sur Modifier. Faites du nouveau nom de variable le chemin souhaité.
  6. Si HOME n'existe pas déjà, cliquez sur "nouveau" sous les variables système et créez une nouvelle variable appelée HOME dont la valeur est le chemin souhaité.

Variable environnementale

REMARQUE: cela peut changer la façon dont d'autres choses fonctionnent. Par exemple, pour moi, cela change l'emplacement de mes fichiers de configuration .ssh. Dans mon cas, je voulais que ma maison soit U: \, parce que c'est mon principal endroit où je mets le travail du projet et les paramètres d'application (c'est-à-dire que c'est vraiment mon répertoire "home").

EDIT 23 juin 2017: Cette réponse continue de recevoir des votes positifs occasionnels, et je tiens à avertir les gens que même si cela peut «fonctionner», je suis d'accord avec @AnthonyRaymond que ce n'est pas recommandé. Il s'agit plus d'une solution temporaire ou d'une solution si vous ne vous souciez pas si d'autres choses se cassent. Changer de maison ne causera pas de dommages actifs (comme la suppression de votre disque dur), mais cela causera probablement des ennuis insidieux plus tard. Lorsque vous commencez à avoir des problèmes ennuyeux sur la route, vous ne vous souviendrez probablement pas de ce changement ... vous risquez donc de vous gratter la tête plus tard!

geneorama
la source
Je ne comprends pas pourquoi les modifications suggérées par @asalle (suggérant principalement que vous pouvez également modifier les variables système de l'utilisateur) ont été rejetées Bamsworld fish_ball et greg-449, les modifications semblaient raisonnables.
geneorama
C'est une manière beaucoup trop destructrice pour être une bonne idée. Cela peut affecter de nombreuses autres applications et même des fenêtres. Ce n'est pas recommandé
Anthony Raymond
@AnthonyRaymond Comme je l'ai noté, changer "HOME" peut avoir d'autres conséquences, mais je ne dirais pas que c'est nécessairement destructeur. En fait, il pourrait être avantageux si vous souhaitez que votre HOME soit un emplacement spécifique ou si une autre application a défini HOME sur un emplacement indésirable. Dans tous les cas, je pense que cette réponse jette un éclairage sur la façon dont le répertoire par défaut est défini.
geneorama
@AnthonyRaymond bien que je sois d'accord, que dans le contexte de cette question, mettre à la maison un projet particulier (par exemple ../../../d/work_space_for_my_company/project/code_source) est une mauvaise idée. De manière générale cependant, il y a des moments où la maison n'a pas besoin d'être/c/Users/[current user name]/
geneorama
Si vous souhaitez qu'un dossier spécial pointe vers un autre emplacement, créez un lien symbolique. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx Nous n'avons aucun moyen de savoir quel programme utilise la variable HOME, si j'ai l'impression que c'est un peu destructeur.
Anthony Raymond
7

Cliquez avec le bouton droit sur le lien de l'application Git Bash, accédez à Propriétés et modifiez l'emplacement de départ pour qu'il soit l'emplacement à partir duquel vous souhaitez qu'il démarre.

Michael Stramel
la source
5

À partir d'un élément du menu Démarrer épinglé dans Windows 10

  1. Ouvrez l'emplacement du fichier du raccourci épinglé
  2. Ouvrez les propriétés du raccourci
    1. Supprimer --cd-to-homearg
    2. Mettre à jour le Start inchemin
  3. Re-épingler pour démarrer le menu via récemment ajouté

capture d'écran de l'emplacement du fichier ouvert

ouvrir la capture d'écran des propriétés de raccourci

Mettre à jour la capture d'écran des propriétés du raccourci

broche via screnshot récemment ajouté


Merci à toutes les autres réponses pour savoir comment faire cela! Voulait fournir des instructions Win 10 ...

tacheté
la source
4

Pour Windows: Suivez ces étapes-

  1. Allez dans Windows Home> Faites un clic droit sur l'application "Git Bash".
  2. Propriétés> Raccourci
  3. Modifiez ces deux paramètres: (a) Supprimer - cd-to-homede target (b) Tapez le chemin du dossier que vous voulez démarrer avec git dans "Démarrer dans".

Cela a fonctionné pour moi :)

Md Nehaluddin Haider
la source
3

Si vous voulez avoir une liste de choix de projets lorsque vous ouvrez GIT bash:

  • éditez ppathdans l'en-tête de code le chemin de vos projets git , mettez ce code dans le fichier .bashrc et copiez-le dans votre répertoire $ HOME (dans Win Vista / 7, il s'agit généralement de 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
  • vous voudrez peut-être définir ce fichier comme exécutable dans GIT bash chmod + x .bashrc (mais c'est probablement redondant, car ce fichier est stocké sur le système de fichiers ntfs )
s1w_
la source
2

Mon raccourci Git Bash sur Windows s'est plaint lorsque j'ai mis le cd dans mon répertoire de travail dans ~ / .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.

Donc, git a créé ce .bash_profile:

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

Ce qui fait le travail.

Alternativement, vous pouvez simplement supprimer à nouveau le .bashrc et mettre la commande cd dans .bash_profile:

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

$ cat ~/.bash_profile
cd Source/Repos

Une fois que cela est fait, vous pouvez fermer la fenêtre et la rouvrir en utilisant le raccourci de votre bureau et l'invite vous dira que votre emplacement est maintenant où vous le vouliez - on dirait que c'est mon cas:

Administrator@raptor1 MINGW64 ~/Source/Repos
$
dr. rAI
la source
2

Si vous tapez cette commande: echo cd d:/some/path >> ~/.bashrc

Ajoute la ligne cd d:/some/pathà .bashrc. Le >>crée un fichier s'il n'existe pas, puis l'ajoute.

mtpultz
la source
1

ce doit être cd d:/work_space_for_....

sans :ça ça ne marche pas pour moi

larsbo
la source
1

Une autre solution pour les utilisateurs de Windows sera de copier le fichier Git Bash.lnk dans le répertoire à partir duquel vous devez démarrer et de le lancer à partir de là.

sauter405
la source