coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] test: Add unary operator -E: test that a file is an empty di


From: Mattias Andrée
Subject: Re: [PATCH] test: Add unary operator -E: test that a file is an empty directory
Date: Wed, 6 Apr 2016 21:57:11 +0200
User-agent: Claws Mail

On Wed, 6 Apr 2016 15:36:29 -0400
Assaf Gordon <address@hidden> wrote:

> Hello,
> 
> > On Apr 6, 2016, at 14:23, Mattias Andrée
> > <address@hidden> 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: pgpiaLFUkvggS.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]