У старій версії Unix rmкоманда видалила б каталоги, якщо вони були порожніми. З основної сторінки Research Unix Eightth Edition для rm : "Якщо запис - це каталог, він видаляється, лише якщо порожній". Мені подобається така поведінка, тому я отримав цей псевдонім у своєму /etc/profile: alias rm='rm -d'я використовую версію coreutils GNU rm, в якій -dповідомляє rmйти вперед і видаляти каталоги, якщо вони порожні.
Все йде нормально. Цей псевдонім дозволяє мені використовувати rmяк колишні часи. Однак я хотів би зробити це на крок далі. я хотів биrmвидалити каталог, навіть якщо в ньому є інші каталоги, доки каталоги є єдиним. Не має значення, наскільки глибока йде структура каталогу, доки там немає файлів, просто порожніх (як тільки ви дістанетесь до низу) каталогів, я хотів би rmвидалити їх усі.
Чи можна це записати як псевдонім, який все ще буде функціонувати як звичайний rmта видаляти будь-які передані до нього файли?
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;, мені все одно залишаються з a, a / b2 та a / b2 / c2. Що я хотів би - це пройти лише верхній рівень (в даному випадку) rmі видалити все, що знаходиться нижче.
rmdir -p?