He just missed some double quotes.

if [ -z "$(ls -A dirname)" ]; then echo empty; fi


I prefer the $(shell command) syntax rather than the `shell command`.  I find it easier to read.
I believe (someone tell me if I'm wrong) that it is now part of the POSIX shell standard.
Of course some shells still don't support it so you might have to write:

if [ -z "`ls -A dirname`" ]; then echo empty; fi

Mike

Zhi Cheng Wang wrote:
this seems a very good test, but the system says "[: too may arguments"


-----Original Message-----
From: Anand Buddhdev [mailto:[EMAIL PROTECTED]]
Sent: 07 March 2003 09:55
To: [EMAIL PROTECTED]
Subject: Re: test empty dir


On Fri, Mar 07, 2003 at 08:52:56AM -0000, Zhi Cheng Wang wrote:

  
dear gurus

how can i test if a directory is empty? at the moment i use the following method:

ls -l /dirname | grep "total 0"
if [ $? ] then ....
    

This is not a good test. "ls -l" will not reveal dot-files.

Use "ls -A" which will list all files, including the dotted ones, but
excluding '.' and '..'.

if [ -z `ls -A /dirname` ]; then echo "empty"; fi

  
but I think it is ugly, any pretty way? ...
    

  

Reply via email to