У старій версії 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
?