When I use Git Bash (on Windows), I cannot run any executable without specifying its full path, although it is located in a folder which is in my PATH variable. Looks like bash doesn't recognize it. Why? Can I fix it?
-
1Can you show what exactly is in your PATH variable? – choroba May 21 '12 at 12:23
-
1Hmm how is that related to my question? If you suspect that it is malformed, I'm sure it isn't, since I can run the same executables using the regular Windows shell (cmd). – ulu May 21 '12 at 16:23
-
@ulu: it is related to your question because the PATH variable is what determines which executables can be found... What does the PATH variable look like from within the Bash shell? – jalf May 21 '12 at 17:58
-
Inparticular, it contains /e/Programs/Tools/bin somewhere close to the end, this is the path I'm interested in. Maybe the problem is that I'm trying to run a bat file? – ulu May 22 '12 at 12:19
21 Answers
Got it. As a Windows user, I'm used to type executable names without extensions. In my case, I wanted to execute a file called cup.bat
. In a Windows shell, typing cup
would be enough. Bash doesn't work this way, it wants the full name. Typing cup.bat
solved the problem. (I wasn't able to run the file though, since apparently bash couldn't understand its contents)
One more reason to switch to posh-git..
Thanks @Tom for pointing me to the right direction.

- 4,003
- 1
- 24
- 26

- 5,872
- 4
- 42
- 51
-
7You can also use an alias in order to shorten the name: ```alias cup=cup.bat``` – Vitali Dec 13 '18 at 12:05
-
2Windows uses both PATH and PATH_EXTENSIONS for resolving executeables, while the Linux world only uses PATH – Ferrybig Jun 05 '19 at 06:02
-
2Your shell script should definitely not be called anything `.bat`; the extension implies a Windows batch script - especially on a Windows machine. – tripleee Jan 08 '20 at 12:45
-
1What does posh-git solve? Do you not need to type the extension any more? – Qwerty Jan 10 '20 at 14:30
-
@Qwerty posh is a Powershell console, switching to it means a more Windows-friendly console with all familiar commands and shortcuts. And yes, just like on any Windows console, you don't have to type ".exe" or ".bat" – ulu Jan 14 '20 at 10:30
-
I been searching why running `npm --version` in Git Bash keep giving the old version. `npm.cmd --version` gives the correct version. – Sarsaparilla Nov 13 '21 at 15:58
Maybe bash doesn't see your Windows path. Type env|grep PATH
in bash to confirm what path it sees.

- 707
- 4
- 3
-
1It says: PATH=/c/Users/ulu/bin:.:/usr/local/bin:/mingw/bin:/bin:/e/Programs/Ruby/bin:/c/P rogram Files/Common Files/Microsoft Shared/Windows Live:/c/Program Files (x86)/C ommon Files/Microsoft Shared/Windows Live:/c/Windows/system32:/c/Windows:/c/Wind ows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/e/Program Files ( x86)/Microsoft SQL Server/90/Tools/binn/ – ulu May 22 '12 at 12:14
-
2Try running "which your_batch_file.bat" (without quotes). It should return the location of your batch file, if it really is in the path. – Tom May 25 '12 at 14:01
-
20
-
14@AngelS.Moreno update or create a ".bashrc" file under your home directory (e.g. "vim ~/.bashrc" in git bash/cygwin), then add "PATH=$PATH:
: – Daniel May 27 '14 at 20:25:...: " to this file. So, if you wanted "/usr/bin/mypath" to be in the PATH variable, this line would read: PATH=$PATH:/usr/bin/mypath -
1In my case, rebooting the system was just sufficient, in order to see my new path variables there. – Emanuele Bellini May 10 '21 at 08:36
Following @Daniel's comment and thanks to @Tom's answer, I found out that Git bash was indeed using the PATH but not the latest paths I recently installed. To work around this problem, I added a file in my home (windows) directory named:
.bashrc
and the content as follow:
PATH=$PATH:/c/Go/bin
because I was installing Go and this path contained the executable go.exe
Now Git bash was able to recognize the command:
go
Perhaps just a system reboot would have been enough in my case, but I'm happy that this solution work in any case.

- 10,425
- 6
- 64
- 101
While you are installing Git, you can select the option shown below, it'll help you to set the path automatically.
Its worked out for me :)

- 1,241
- 1
- 17
- 30
-
1
-
1@eranotzap Setup the Environemtal Variable else reinstall the Git – Muthamizhchelvan. V Dec 06 '16 at 10:00
-
How does this help get git bash to use the path, when the end result is that git bash won't even be installed? – Jules Mar 23 '18 at 10:14
-
@Jules No, while installing Git Bash it'll ask you for there options as like shown in the screenshot, there you can select any one ask per your need, git bash will get installed with the select option. – Muthamizhchelvan. V Mar 24 '18 at 06:43
Restart the computer after has added new value to PATH.

- 2,602
- 1
- 27
- 34
-
2The computer doesn't need to be restarted, the terminal session does. – christianbundy Aug 10 '17 at 22:25
-
5@christianbundy I dont sure, but looks like sometime restart of terminal not helped, but restart of computer helped, so I wrote this answer. Restart terminal is the first, that I try. – Pavel Aug 14 '17 at 06:44
-
2
-
1@Pavel: Exactly right. Restarting the terminal did not help but a computer restart helped. Maybe a logout would be sufficient... I did not try this out however. – Ohumeronen Nov 23 '22 at 11:02
Create a file in C:\Users\USERNAME which is called config.bashrc, containing:
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
Now move the file on the command line to the correct location:
mv config.bashrc .bashrc

- 3,491
- 2
- 26
- 34
In case your git-bash
's PATH
presents but not latest and you don't want a reboot but regenerate your PATH
s, you can try the following:
Close all
cmd.exe
,powershell.exe
, andgit-bash.exe
and reopen one cmd.exe window from the Start Menu or Desktop context.If you changed system-wide
PATH
, you may also need to open one privileged cmd window.Open Git bash from Windows Explorer context menu and see if the
PATH
env is updated. Please note that the terminal in IntelliJ IDEA is probably a login shell or some other kind of magic, soPATH
in it may won't change until you restart IDEA.If that does not work, you may need to close all
Windows Explorer
processes as well and retry the steps above.Close all
Windows Explorer
processes using Task Manager:- Apps - Windows Explorer - right click - End task
- scroll down
- Windows processes - Windows Explorer - right click - Restart
Note: This doesn't work with all Windows versions, and open cmd.exe
anywhere other than the Start Menu or Desktop context menu may not work, tested with my 4 computers and 3 of them works. I didn't figure out why this works, but since the PATH
environment variable is generated automatically when I login and logout, I'd not to mess up that variable with variable concatenation.

- 426
- 3
- 13
-
Closing all windows terminals and git bash resolved this issue.. I tried sourcing bashrc but this actually fixed it. – Kaito Feb 22 '22 at 17:16
Old question but it can help someone else.
I've changed my PATH user wide, after that I've just logoff and login again.
That is it! git bash
loaded the new PATH value correctly.

- 9,849
- 4
- 24
- 34
-
Is it possible without closing git bask or logging off. I mean i want to set path variable, and i can use it it current git bash – KCS Jul 23 '18 at 13:37
-
Maybe you could do: `export PATH=$NEW_PATH:$PATH`. And do stuff normally – fernandosavio Sep 03 '18 at 12:29
I can confirm that restarting the system will make sure that the PATH set in the environment variable in windows is picked up by git and there is no other automatic way.

- 1,551
- 14
- 10
I know it is an old question but there's two type of environment variables. The one owned with User and the one system wide.
Depending how do you open git bash (with user privilege or with administrator privilege) the environment variable PATH used can be from you User variables or from System variables.
See below:
as said in a previous answer, check with the command env|grep PATH
to see which one you are using and update your variable accordingly.
BTW, no need to reboot the system. Just close and reopen the git bash

- 194
- 6
It seems the root cause here is Git Bash not able to always parse the variable %USERPROFILE% correctly. Instead of making it relative to C:\Users\\ it gets the value C:\Windows\System 32\systemprofile\ After changing this to a fully qualified address, it Works, and even if I set it back afterwards, Git Bash still has the correct PATH for some reason.

- 46
- 3
I meet this problem when I try to use mingw to compile the xgboost lib in Win10. Finally I found the solution.
Create a file named as .bashrc in your home directory (usually the C:\Users\username). Then add the path to it. Remember to use quotes if your path contains blank, and remember to use /c/ instead of C:/
For example:
PATH=$PATH:"/c/Program Files/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin"

- 1,573
- 1
- 10
- 4
On Windows 10, just uninstall git and install it again. It will set the environment variable automatically for you. I had removed the environment variable by mistake and I couldn't use git inside my IDE. Reinstalling git fixed this issue.

- 1,532
- 1
- 14
- 35
For me the most convenient was to: 1) Create directory "bin" in the root of C: drive 2) Add "C:/bin;" to PATH in "My Computer -> Properties -> Environemtal Variables"

- 11
- 1
Don't escape (\) special characters when editing/adding to your $PATH variable.
For example, an application directory in program files would look like:
PATH=$PATH:/c/Program Files (x86)/random/application
Don't do this:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
Hope this helps.

- 8,326
- 3
- 31
- 56

- 131
- 1
- 4
-
`PATH=$PATH:/c/Program Files (x86)/random/application` ... this is not correct bash syntax for setting the PATH. This will temporarily add the directory `/c/Program` to the path, then try to run the program `Files` with arguments `(x86)/random/application`. The only thing wrong with your "don't do this" example is that it has doubled backslashes for the brackets, when single backslashes are correct. – Jules Mar 23 '18 at 10:13
I've run into a stupid mistake on my part. I had a systems wide and a user variable path set for my golang workspace on my windows 10 machine. When I removed the redundant systems variable pathway and logged off and back on, I was able to call .exe files in bash and call go env with success.
Although OP has been answered this is another problem that could keep bash from seeing your pathways. I just tested bash again with this problem and it does seem to give a conflict of some sort that blocks bash from following either of the paths.

- 1
- 1
In my case It happened while installing heroku cli and git bash, Here is what i did to work.
got to this location
C:\Users\<username here>\AppData\Local
and delete the file in my case heroku folder. So I deleded folder and run cmd. It is working

- 2,413
- 1
- 22
- 30
Git bash terminal on windows operating system have capability to read system path / user path and run the apps but it might miss in following cases
- App is added to environment variables without closing terminal
- MSYS / MinGW is converting your path
- App command your trying to use common alias name instead of original way of calling
Use Case - 1 :
Restart terminals should work and use below command to verify your path
env|grep PATH
Use Case - 2 :
let me explain with an example docker
won't work directly on the git bash terminal, for such apps MSYS is converting it origin path. for such issues you might need to tell your terminal ignore path conversion using command MSYS_NO_PATHCONV=1
and proceed with your actual execution command, say for example docker --help
should be like below
MSYS_NO_PATHCONV=1 MSYS_NO_PATHCONV=1 docker run -dp 3000:3000 -w /app -v "$(pwd):/app" node:12-alpine sh -c "yarn install && yarn run dev"
717d12b9fe5211f0189ccbed0ba056ca242647812627682d0149ede29af472a4
Use Case - 3 :
let me explain with an example az
cli, ideally az cli install in windows as az.cmd
which is added to system/user path. on windows operating system either powershell or command prompt recognize az.cmd
as az
but git bash won't understand it - so you have use alias to avoid the confusion say alias az='az.cmd'
and then execute az --help
will work for you

- 93
- 1
- 7
For those of you who have tried all the above mentioned methods including Windows system env. variables, .bashrc, .bashprofile, etc. AND can see the correct path in 'echo $PATH' ... I may have a solution for you.
suppress the errors using exec 2> /dev/null
My script runs fine but was throwing 'command not found' or 'No directory found' errors even though, as far as I can tell, the paths were flush. So, if you suppress those errors (might have to also add 'set +e'), than it works properly.

- 189
- 3
- 8
-
1This seems to just be ignoring errors and not solving the root cause of the problem. – nmio May 21 '19 at 16:13
Create a User variable named Path and add as value %Path%, from what I noticed Git Bash only sees User Variables and not System Variables. By doing the mentioned procedure you'll expose your System Variable in the User Variables.

- 15
- 5
In Windows 7 Path Environment Variables I just add at the end of System Variable path
\;C:\Program Files\Git\bin
and it works now!

- 15
- 8