В старой версии Unix rmкоманда удаляла каталоги, если они были пустыми. Из справочной страницы Research Unix восьмого издания для rm : «Если запись является каталогом, она удаляется, только если она пуста». Мне нравится это поведение, поэтому у меня есть этот псевдоним /etc/profile: alias rm='rm -d'я использую версию GNU coreutils 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?