Re: ls: avoiding error msg on non-existant file

"Karl O. Pinc" <[email protected]>
Newsgroups gmane.comp.gnu.fileutils.bugs
Message-ID <[email protected]>
On 2002.11.22 00:36 Bob Proulx wrote:
> Karl O . Pinc <[email protected]> [2002-11-18 14:33:30 -0600]:
> > To keep there error from coming up, I can
> >
> > 2>/dev/null
> >
> > if [ ! -e . ] ; then ls pattern ; fi
> >
> > but niether of these solutions is particularly elegant.
> > The first throws all errors away, and I want to know if
> > there are any other errors.  The second assumes that
> > there will only be files in the directory when the directory
> > also contains files matching <pattern>.

> The first is rather like this.
> 
>   for file in pattern ; do
>     if [ ! -f "$file" ]; then
>       echo "$file: no such file" 1>&2
>     fi
>   done

> You did not really say what you were trying to do.  Therefore it is
> hard to suggest alternatives.

Sorry.

What I am trying to do is take advantage of the pattern expansion
capabilities of the shell.
I want to pipe the result of the shell's pattern expansion to
the remainder of my program, but I don't want to feed the
right side of the pipe a file that doesn't exist, the pattern
expands to iteslf when there's no matching directory entry.
I attempted to use ls as a filter to remove non-existant
pathnames, a task beyond ls.

You are right, I can filter shell pattern expasion with:

   for f in pattern ; do
     if [ -e "$f" ] ; then
       echo "$f"
     fi
   done

I'm just searching for an existance filter command, so I don't
have to code the loop.  'ls -d', which lists files which _do_ exist
just rolled off my fingers. 
I've no compelling reason not to code the loop, just lazyness.

Thanks for the help.

Karl <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.