On Wed, Feb 21, 2007 at 01:00:57PM -0000, Ted Harding wrote:
On 21-Feb-07 Paul wrote:
On Wednesday 21 February 2007 11:42, Eur Ing Chris Green wrote:
What's the simplest (and/or most concise) way to check for an empty directory?
if test -z `ls foo` ; then wibble ; fi
Or
if [ -z `ls foo` ] ; then wibble ; fi
There's probably other ways....
Regards, Paul.
NB: `ls foo` will not detect filenames in foo that begin with "."
Hence my suggestion using "ls -la"; but this then outputs the "." for current, and ".." for parent directories, regardless of whether "foo" is empty (and also a first line which gives the "total"). Hence the test for "-eq 3".
Hence my use of ls -lAU, U is for unsorted - and thus is quicker than a default ls, -A means "almost all files" and skips . and .., and as ls gives a nice line containing "total" as the first line of output, it seemed sensible to use that to find out if it contained anything or not :)
Cheers,