3

In MSYS2, for the binary files in the folder /usr/bin, I find that I can call them by "name" or "name.exe". However, in the Windows file system, there are only binary files with "exe" extensions. The "ls" and "file" commands can output information of binary files without "exe" extensions, too. However, when I execute "ls /usr/bin", the output contains no files without "exe" extensions. So why the shell of MSYS2 can find binary files without "exe" extensions in the folder /usr/bin? It is all well under bash, but when using zsh, the tab-completion always suggests the "command" and the "command.exe", it's very annoying.

1
  • 1
    Herein lies the difficulties in trying to combine Linux and Windows into the same operating system. The authors needed to make ways to get to the windows commands while still allowing the Linux commands. If you want a real experience under windows, I highly suggest installing WSL initially (WSL1 to be specific). You will get a real Linux experience there that these compatibility libraries had to jump through hoops to get to work. Great libraries.. and well written.. but now we are in an era where they are no longer needed or highly useful. This will make someone mad but it is true. Nov 15, 2021 at 2:58

1 Answer 1

1

This issue is discussed in more detail on this page as the third to last item under Table of Contents:

TODO List for MSYS2

It would be helpful though if someone on the MSYS2 team could produce a complete list of all the 'hacks' that they have implemented in order to bridge incompatibilities between the MSYS2 (POSIX emulation) and Windows native environments (e.g., file path mangling, .exe extension interpolation, symlink copying, etc.) and explain exactly how they work.

If this already exists somewhere, can someone point to its location?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .