if find "${DIR}" -prune ! -empty -exit 1; then
echo Empty
else
echo Not Empty
fi
EDIT: Saya pikir solusi ini berfungsi baik dengan gnu find, setelah sekilas melihat implementasinya . Tetapi ini mungkin tidak bekerja dengan, misalnya, temuan netbsd . Memang, yang satu menggunakan bidang st_size stat (2). Manual menggambarkannya sebagai:
st_size The size of the file in bytes. The meaning of the size
reported for a directory is file system dependent.
Some file systems (e.g. FFS) return the total size used
for the directory metadata, possibly including free
slots; others (notably ZFS) return the number of
entries in the directory. Some may also return other
things or always report zero.
Solusi yang lebih baik, juga lebih sederhana, adalah:
if find "${DIR}" -mindepth 1 -exit 1; then
echo Empty
else
echo Not Empty
fi
Juga, -prune dalam solusi pertama tidak berguna.
EDIT: no -exit for gnu find .. solusi di atas bagus untuk temuan NetBSD. Untuk menemukan GNU, ini harus bekerja:
if [ -z "`find \"${DIR}\" -mindepth 1 -exec echo notempty \; -quit`" ]; then
echo Empty
else
echo Not Empty
fi