I was invited to re-post this question with less opinion, so if it seems familiar, that's why.

How can I convert info pages into man pages? I used to have a shell one liner that flattened an entire info document into a single flat page, suitable for navigating with less, but I seem to have lost it. Please share if you know how to do this. :)


  • 3
    Hah, I assume that you were requested to remove anti-info vitriol? If so, I share your feeling... – user5336 Mar 29 '10 at 14:50

This will output an info as a flat text file:

info --subnodes --output=info_file.txt info_file

For example:

info --subnodes --output=info.txt info
less info.txt
  • You can make it one line : info --subnodes --output=- info_file | less – Emmanuel Dec 9 '17 at 12:06

The script above does not quite work. For normal man pages, it gets into infinite recursion; not pleasant on the command line. When it invokes the "man" command it has to make sure it's not invoking itself -- this is an issue if it's in a directory that's in your PATH.

Since my ~/bin directory is in my PATH, I changed the end of the "case" list thus:

  /usr/bin/man $@

I've never seen the real 'man' be anywhere but /usr/bin/man, so this should work.


The other answers here will work, but I have a much simpler alternative:

info foo | less

This command take the output of info and pipe it through less, which will make the info page behave similar to a regular manpage. It's not as precise as the other alternatives, but will work in majority of cases.


stefanl@host:~ $ info vi | less

File: *manpages*,  Node: vim,  Up: (dir)

VIM(1)                                                                  VIM(1)

       vim - Vi IMproved, a programmers text editor

       vim [options] [file ..]
       vim [options] -
       vim [options] -t tag
       vim [options] -q [errorfile]

A more precise, but more complicated, version would be:

info ls --subnodes -o - |less

The other answers here require that you remember arcane flags or make modification to your environment every single Linux system that you maintain, which doesn't work well if you have accounts on hundreds of systems. At some point, you're going to be on a system where your custom environment isn't present, and info foo | less will be very easy to remember.

  • It works only if the info page is simple. It is not working if it contains subnodes. For instance try info grub | less . – Emmanuel Dec 9 '17 at 12:05

I didn't want to get out of the habit of typing 'man' so I ended up writing a wrapper using Dennis Williamson's answer.

Contents ~/bin/man:


case $1 in
  page=$(echo $1 | sed -e s/info-//g)
  info --subnodes --output=$tmpfile $page \
  && less $tmpfile \
  && rm -f $tmpfile
  man $@

Use case

man sed

# learn the sed man page isn't adequate

man info-sed

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.