On Mon, 28 Jun 2004, DervishD wrote:
In certain sense, what you want is impossible. If you issue the
'ls'
command with parameters, it will list those parameters (if they
exist),
but if you don't give it params, it will list all files and dirs. You
cannot have a way of 'ls' shutting its mouth up if the pattern doesn't
match anything.
Well, no, but you can have zsh not call "ls" in the first place if the
pattern doesn't match anything.
You're on the right track in a later posting on this thread where you
used
a function rather than an alias. Aliases can't do anything but simple
text replacements which happen before any of the glob patterns or other
expansions are evaluated. If you want to base a decision on the
result of
an expansion, you must use a function.
In this case, something like
lspf() {
files=( **/*(.N) )
if (( $#files ))
then
ls $files
else
print -u2 "Dude, where's my file?"
fi
}