Alias's & Functions - simple question

Having a memory lapse:

If I redefine a command using an alias or a function - How do I access the "real" command without specifying an absoulte path:

i.e.

function man
{
/usr/bin/man |more
}

alias ls='/usr/bin/ls -l'

How do I specify the ls or man command above without the absolute path. Or - at the command line I want to invoke the command for ls or man & not invoke the alias or function

Thanks!

unalias is what you are looking for.

From the manpage

unalias name ...
unalias -a

       Remove each name from the alias list.  With -a, remove all alias definitions from the current shell execution environment.

:smiley:

Sorry - unalias, unset -f are not what I'm looking for -
Am looking to invoke the original command and not invoke the alias or function as a "one shot"

Well, then you should use the full path instead of the short command that you aliased as: alias ls='ls -l'

/usr/bin/ls somefile

instead of:

ls somefile

I am not sure there is another way... besides this one.

:cool:

Many shells will let you prefix it with a backslash:
\ls
\man

Quoting all or part of an alias will stop it from being recognized as an alias. You can use an alias to override a function. The latest version of ksh has the "command" command which will execute a command ignoring functions. But the "command" command will demote a special built-in to an ordinary built-in. So that won't work well if you named a function "typeset" or something.

Thanks all.

Using a backslash \ls or quoting "ls", 'ls' works to access the "real" command as opposed to the alias.

This method does not seem to work for functions.

I'm running an older version of ksh