On Wed, 6 Apr 2016 15:36:29 -0400
Assaf Gordon <[email protected]> wrote:

> Hello,
> 
> > On Apr 6, 2016, at 14:23, Mattias Andrée
> > <[email protected]> wrote: [...] The rationale
> > for this flag that it is better to implement it in test
> > than as a separate command.
> > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=385069 
> >> On the other hand, I readily concur that "test -s
> >> directory" does NOT accurately report whether the
> >> directory has contents  
> 
> As a temporary work-around, the following seems portable
> across some OSes (gnu/linux,*BSD) and can be used as a
> shell function (but '-mindepth' is not in POSIX standard):
> 
> dirempty() {
>   test -d "$1" \
>      && test -z "$( { find "$1" -mindepth 1 2>/dev/null
> || echo failed ; } | head -n1)" }
> 
> usage is:
> 
> dirempty DIRNAME && echo empty || echo not-empty-or-error

It is too complicated and you need to use find "$1/",
not find "$1". But you can use:

test -d "$1" && python - "$1" <<EOF
import os, sys
sys.exit(1 if len(os.listdir(sys.argv[1])) else 0)
EOF

or

test -d "$1" && test -z "$(ls -A -- "$1/")"

> 
> 
> HTH,
>  - assaf
> 

Attachment: pgpB81gSDF9JR.pgp
Description: OpenPGP digital signature

Reply via email to