I am working on a housekeeping shell script to delete old files and update some files. I want to know whether the .sh is completed without problem. So i made a checking part in the shell script.
The following .sh example checks if a folder is empty or not.
#!/bin/sh # Read a folder path from user input and check if it is # empty or not # Read the folder location # "\c" means keep the cursor on the same line echo "Please input the folder location: \c" read _folder # Quit if the folder does not exist if [ ! -e $_folder ]; then echo 'Sorry, folder does not exist.' exit 1 fi # Check if the folder is empty or not if [ $(ls $_folder | wc -l) -eq 0 ]; then echo "$_folder is EMPTY" else echo "$_folder is NOT EMPTY" fi
Done =)
what if the directory has files but each file is of 0 size?
best way is to do as below:
dir_full_path=”/tmp/foo”
if [ -d “$dir_full_path” ] ; then
if [ 4 -ge $(du -s “$dir_full_path” ] ; then
echo “empty directory $dir_full_path”
else
echo “non-empty directory $dir_full_path”
fi
fi
This snippet assumes that a directory size, by its own name, is always 4096 bytes, approximated to 4.0K evaluated to int as 4
LikeLike
Thanks for you code, samoak. =)
LikeLike