On Sun, Aug 05, 2018 at 01:23:05AM -0400, Eric Sunshine wrote:
> A simpler approach, without the portability concerns of -A, would be
> to remove the "." and ".." lines from the top of the listing:
>
> ls -f1 "$1" | sed '1,2d'
>
> If we're worried about -f not being sufficiently portable, then an
> even simpler approach would be to check whether the output of 'ls -a1'
> has more lines than the two expected ("." and ".."):
>
> test $(ls -a1 "$1" | wc -l) -gt 2
>
> I think I favor this final implementation over the others.
Perhaps even simpler:
test "$1" = "$(find "$1")"
That will recurse any subdirectories, possibly wasting time, but since
the point is that we expect it to be empty, that's probably OK.
Like Junio said elsewhere, I am not sure if it is even worth caring too
much about pathological cases in the test suite, where we control all of
the paths. But using `find` does shave off one process invocation, too. :)
-Peff