Convert info pages to man pages

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. :)

Thanks!


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

One liner:

info --subnodes --output - info_file | less

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 $@
  ;;
esac

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.

Output:

stefanl@host:~ $ info vi | less

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

VIM(1)                                                                  VIM(1)

NAME
       vim - Vi IMproved, a programmers text editor

SYNOPSIS
       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.