Dalam versi Unix yang lama, rmperintah akan menghapus direktori jika kosong. Dari halaman manual Research Unix Eighth Edition untuk rm : "Jika sebuah entri adalah direktori, itu dihapus hanya jika kosong." Saya suka perilaku ini, jadi saya punya alias ini di /etc/profile: alias rm='rm -d'Saya menggunakan versi GNU coreutils rm, yang -dmemerintahkan rmuntuk melanjutkan dan menghapus direktori jika kosong.
Sejauh ini bagus. Alias ini memungkinkan saya untuk menggunakan rmseperti dulu. Namun, saya ingin melangkah lebih jauh. saya inginrmuntuk menghapus direktori bahkan jika direktori tersebut berisi direktori lain, selama direktori adalah satu-satunya hal di sana. Tidak masalah seberapa dalam struktur direktori berjalan, selama tidak ada file di sana, cukup kosongkan (begitu Anda sampai ke bawah) direktori, saya ingin rmmenghapus semuanya.
Mungkinkah ini ditulis sebagai alias yang masih berfungsi seperti biasa rmdan menghapus semua file yang diteruskan ke sana?
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;, saya masih tersisa dengan a, a / b2, dan a / b2 / c2. Yang saya inginkan adalah lulus level atas saja (dalam hal ini) rm, dan menghapus semua yang ada di bawahnya.
rmdir -p?