Почему rm не удаляет каталоги?

1838
Jonas

Чтобы удалить каталоги, вам нужно использовать команду rmdirвместо rm. Я узнал, что Unix видит все как файл. Так в чем же причина того, что rmневозможно удалить файл любого типа?

-1

1 ответ на вопрос

2
Joce

Почему вы не должны удалять каталог «как если бы это был файл», если он не пустой, кажется довольно очевидным: тогда файлы в этом каталоге не будут иметь правильный путь. Это объясняет, почему вам нужно либо удалить рекурсивно ( -r), либо проверить, что каталог пуст перед удалением ( rmdirили, в некоторых ветвях Unix, rm -d).

Согласно Википедии со ссылкой на справочную страницу Unix 8 rm, в некоторых старых версиях Unix rmкоманда удаляла каталоги, если бы они были пустыми, поэтому это скорее выбор взаимодействия с пользователем некоторых версий Unix, чем требование.

Похожие вопросы