bash if file exists

David Rosenstrauch darose at darose.net
Thu Apr 3 14:23:43 EDT 2008


Dan Ritter wrote:
> On Thu, Apr 03, 2008 at 01:27:56PM -0400, Eric Chadbourne wrote:
>> Hi all.  Help I'm having a brain freeze.  How come this doesn't work?
>> Thanks.  - Eric C.
>>
>> if [ -a *.zip ] ;
>> then
>> echo "there is a zip";
>> else
>> echo " no zip found";
>> fi
> 
> Because your shell expands *.zip to all the matching files.
> 
> The rewritten version is thus:
> 
> if [ -a aber.zip wiggle.zip foo.zip zippetydodah.zip ]
> 
> which obviously doesn't work, right?
> 
> You need a for loop.
> 
> -dsr-

The find command could work here too:

FOUNDZIP=0
FOUNDZIP=$(find . -maxdepth 1 -type f -name "*.zip" -exec echo 1 \; | uniq)
if [ "$FOUNDZIP" = 1 ] ; then echo "there is a zip"; else echo " no zip 
found"; fi

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the Discuss mailing list