find perintah adalah alat utama untuk operasi sistem file rekursif. Gunakan -type d ekspresi untuk memberi tahu find Anda hanya tertarik untuk menemukan direktori (dan bukan file biasa). Versi GNU dari find mendukung -empty tes, jadi
$ find . -type d -empty -print
akan mencetak semua direktori kosong di bawah direktori Anda saat ini.
Gunakan find ~ -… atau find "$HOME" -… untuk mendasarkan pencarian pada direktori home Anda (jika itu bukan direktori Anda saat ini).
Setelah Anda memverifikasi bahwa ini memilih direktori yang benar, gunakan -delete untuk menghapus semua kecocokan:
$ find . -type d -empty -delete
Anda dapat menghubungi rmdir di setiap direktori, sejak rmdir hanya akan menghapus direktori jika kosong:
find "$HOME" -type d -exec rmdir {} + 2>/dev/null
Jika Anda juga ingin mencetak direktori yang dihapus, Anda perlu memeriksa apakah direktori tersebut kosong:
find "$HOME" -type d -exec bash -c 'shopt -s nullglob; shopt -s dotglob; files=("$1"/*); [[ ${files[@]} ]] || rmdir -v "$1"' -- {} \;
Ini adalah contoh bash murni (versi 4 atau lebih tinggi):
shopt -s globstar
for dir in **/; do
files=("$dir"/*)
[[ ${files[@]} ]] || rmdir -v "$dir"
done