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