Skip to content
shellmap

moreView a file one screen at a time (basic pager) across all 5 shells

Equivalents in every shell

Bashunix
more file.txt

External pager that came with original AT&T Unix. `SPACE` advances one screen; `ENTER` advances one line; `q` quits. NO backward scrolling on older versions — that was the gap `less` filled (hence "less is more"). GNU `more` (util-linux) gained backward navigation in 2.30+.

Zshunix
more file.txt

Same external. Zsh-specific completion (`more <TAB>`) understands `more`-specific flags like `+/pattern` (start at first match). Internal pager fallback (`$PAGER` parameter) defaults to `more` on minimal systems where `less` is absent.

Fishunix
more file.txt

Same external. Fish completion (`more <TAB>`) lists files first, then options. Fish does not auto-page long output; for that, pipe explicitly each time (`cmd | more`) or wrap in a helper function.

PowerShellwindows
more file.txt

`more` is a built-in COMMAND on Windows (since DOS) AND a PowerShell ALIAS for an internal paging function in PS 5.1+. PS 7 keeps the alias. `Out-Host -Paging` is the cmdlet-flavoured form: `Get-Content file.txt | Out-Host -Paging`.

cmd.exewindows
more file.txt

Built-in. `SPACE` advances one screen, `ENTER` advances one line, `q` quits. Supports `more +5 file.txt` to skip the first 5 lines. NO regex search, NO `/pattern` jump, NO backward scrolling. The limited feature set is the main reason to install `less` on Windows.

Worked examples

Page through a file from the top

Bash
more app.log
Zsh
more app.log
Fish
more app.log
PowerShell
more app.log
cmd.exe
more app.log

Page output of another command (pipeline)

Bash
ls -la /etc | more
Fish
ls -la /etc | more
PowerShell
Get-ChildItem -Force C:\Windows | Out-Host -Paging
cmd.exe
dir /a C:\Windows | more

Start paging at the first match of a pattern

Bash
more +/ERROR app.log
Zsh
more +/ERROR app.log
PowerShell
Get-Content app.log | Select-String -Context 5 ERROR | Out-Host -Paging

Gotchas

  • `more` is the LIMITED Unix pager — `less` is the strict superset and is the modern default (`man` pipes through `less` on most systems). New scripts should default to `${PAGER:-less}` for forward compatibility; reach for `more` only when targeting environments without `less` installed.
  • Old SVR4 / Solaris `more` does NOT exit cleanly on `Ctrl-C` — it can leave the terminal in raw mode requiring `stty sane` to recover. GNU `more` (util-linux) and modern BSD `more` accept `Ctrl-C` cleanly. Any script that traps SIGINT and pipes into `more` must test across distros.
  • `more` differs from `less` chiefly in lacking BACKWARD scroll and (on most versions) REGEX search. GNU `more` 2.30+ added forward `/pattern` search; backward navigation never landed. For interactive log inspection, `less` is almost always the better default.
  • `more file1.txt file2.txt` (multi-file) shows filename HEADERS between files. cmd's `more` uses `:File: name:` separators; GNU `more` uses `::::::::::::::` lines. Scripts that parse paged multi-file output must match the right separator format for the target system.
  • PowerShell's `more` ALIAS wraps an internal paging function, NOT the Windows `more.com`. The two read input differently — the alias buffers via the pipeline, while `more.com` reads from a redirected file descriptor. Piping objects (`Get-Process | more`) goes through the alias; the executable is only invoked when called explicitly as `more.com`.

WSL & PowerShell Core notes

pwshThe pwsh `more` alias works on every platform (it points to an internal paging function, not the external `more` binary). On Linux / macOS pwsh you can still call `/usr/bin/more` explicitly — the alias resolves first inside the pipeline, so disambiguate with `& /usr/bin/more` if you need the system tool.
WSLWSL ships GNU `more` from util-linux. Piping Windows output to WSL `more` (`cmd.exe /c dir | wsl more`) works but loses ANSI escapes; the reverse (`wsl ls | more.com`) drops into cmd `more`'s limited keystroke set. Stick to one shell's `more` per pipeline to keep behaviour consistent.

Related commands