Я новичок в UNIX (MAC OS X bourne shell POSIX), я понимаю, что rmdir
удалит только пустой каталог, но при каких обстоятельствах вы на самом деле захотите использовать rmdir <directory name>
а не просто rm -r <directory name>
? Есть ли интеллектуальный вариант использования, который я не могу оценить, и что знание о нем сделает мои программы немного лучше, если я это сделаю? Благодарю.
2 ответа
rmdir
безопаснее: он отказывается удалять каталог, если он содержит какие-либо файлы. Что делать, если вы пытаетесь удалить неправильный каталог, или каталог все еще содержит (возможно, скрытые) файлы, которые вам нужны?
Есть и исторические причины: в начале в программе rm
не было ключа -r
, поэтому для удаления каталогов был необходим rmdir
. В то время rmdir
была нетривиальной программой, но сегодня это просто оболочка для C-функции rmdir(const char*)
.
Я использую rmdir
когда удаляю каталог, который я ожидаю оставить пустым, чтобы он не работал, если в нем еще есть файлы. Использование rm -rf
может привести к удалению файлов, которые я хочу сохранить, если я что-то напишу.