I was wondering what does the ls -A option do on it’s own and why does it work in the code below when checking if a directory is empty or not… ?
I can’t find any other answers online and the man pages I don’t understand what it means when I read the documentation.
Thanks
#!/bin/bash FILE="" DIR="/empty_dir" # init # look for empty dir if [ "$(ls -A $DIR)" ]; then echo "Take action $DIR is not Empty" else echo "$DIR is Empty" fi # rest of the logic
Advertisement
Answer
Nothing related to bash
. It tells ls
to show all “hidden” files (those whose names start with .
) except for .
and ..
(special directory entries representing the current directory and the parent directory, respectively).
Compare with ls -a
, which shows all hidden files including .
and ..
. The presence of those two entries in the output would make the directory appear to be not empty, even though it really is.