Why can't I use "more" command in Git Bash? [closed]
Asked Answered
M

1

8

"less" command works fine, though.

I can use "less" to display part of the file on the screen.

Supposedly, there is a "more" command, but when I type it in, it says "bash: more: command not found."

Mcewen answered 7/9, 2020 at 2:59 Comment(3)
Because more is not installed in git-bash. You can run which less to check where less is installed.Blok
Git bash is not unix. It doesn’t contain the unix programs. Although I’m pretty sure less and more are synonyms for the same programCollusion
@Mcewen : You could switch from git-bash to Cygwin, or use WSL. Then you have more available, though I don't see why you want to prefer this over less.Drat
C
11

You can benefit from the Windows more though:

alias more=/proc/cygdrive/c/Windows/System32/more.com

(This does not imply Cygwin: the git bash packaged with Git For Windows is based on MSys2, a stripped down version of Cygwin, actively kept up-to-date with Cygwin's source code)

That will work:

cat large_file | more

The bash alternative:

alias more="less -de"

(as commented: adding -d for --dumb and -e for --quit-at-eof makes this alias closed to what more does by default)

In both instances, you can add that alias in your %USERPROFILE%/.bashrc.

See also "In git bash how to increase less's screen width?" to understand what less.exe is in that Windows context.

The reason is that Git for Windows uses a version of less that relies on the MSYS2 runtime to interact with the pseudo terminal (typically inside a MinTTY window, which is also aware of the MSYS2 runtime).

Cassycast answered 7/9, 2020 at 4:34 Comment(9)
Please fix your first alias. It assumes that the OP has Cygwin installed, but if he really had, he would have the Gnu more already (which as this is included in the Cygwin distribution).Drat
I think if you want to make less behave pretty much like more, the alias should be alias more="less -de".Drat
I don't have cygwin installed myself, just the regular git bash from git for windows. So there is nothing to fix. It does work. Without cygwin.Cassycast
So, why are you using cygdrive as part of the path? AFIK, git bash does not use the cygdrive convention to access the Windows drives, does it? I don't have git bash, so I can't verify it.Drat
Based on this discussion, the C-drive is supposed to be accessed by /C, while you are locating it via /proc/cygdrive/c. Are both ways officially supported? I did not find the latter one documented.Drat
It does work with git bash.Cassycast
@Drat For more on git bash based on MSYS2, for of Cygwin, see https://mcmap.net/q/12564/-difference-between-msysgit-and-cygwin-git and https://mcmap.net/q/12113/-how-are-msys-msys2-and-msysgit-related-to-each-otherCassycast
Thanks a lot for the link. I learned from it, that MSys2 (i.e. the base for GitBash) was a stripped down version of Cygwin, which probably explains, why you can see i.e. the cygdrive pathes under /proc , just like in Cygwin.Drat
@Drat Yes, I wrote those answers a few years ago, so that is why seeing /proc/cygdrive/c did not raise any concern for me.Cassycast

© 2022 - 2024 — McMap. All rights reserved.