Работает ли ваш rmdir, если в подкаталоге есть файлы?
Джефф Шаллер
1
Смотрите также одноименный системный вызов, rmdir(2)который может удалить только пустые каталоги.
Дэвид Фёрстер,
4
Кстати, есть «правильная» процедура использования rm -r: (1) введите команду, но не вводите ее (2) уберите руки от клавиатуры (3) сосчитайте до пяти (4) нажмите ENTER. Я начал делать что-то подобное со всеми опасными командами, чтобы дать мне возможность посмотреть на то, что я делаю, убедиться, что я правильно ввел что-то, подумать о возможных непредвиденных последствиях и т. Д. Иногда это приводит меня например, стереть мою команду и сначала выполнить дополнительные проверки.
17
3
@ajb rm -rf ~ /*- очистить мой домашний каталог. Или подождите, может быть, очистите систему. Всегда хорошо перепроверять;).
Том Карпентер
1
@ajb Обратите внимание, что rmdirи rm -rэто две строки одинаковой длины :-)
Кусалананда
Ответы:
14
rm -rудаляет каталог и все его содержимое; rmdirудалит каталог, только если каталог пуст. Мне нравится использовать следующее, чтобы удалить каталог и все его содержимое:
Обратите внимание, что вы обычно не должны использовать, -fесли вам не нужно. Его удобно использовать -rfкаждый раз, но он отключает (почти) все проверки безопасности.
Алло
5
-1 за ненужную рекомендацию -fфлага rm, которая может иметь непредсказуемые, необратимые последствия
кошка
Так rmdirэто просто rm -d?
Стэн Струм
@StanStrum -dне является стандартной опцией rm.
Кусалананда
@cat The rmкоманды в целом может иметь эти последствия. -fФлаг полезен при работе в set -eв сценарии. Я бы согласился, что использование без размышлений не является необходимым .
Кусалананда
1
Вы должны использовать это, rm -rкогда хотите рекурсивно удалить каталог и все его содержимое, или когда целью может быть каталог или файл, и вы хотите удалить его независимо от того, что это такое.
Вы должны использовать, rmdirкогда хотите удалить пустой каталог.
Команда rmdirполезна, так как она отказывается удалять непустые каталоги и файлы. Это служит уловкой безопасности в ситуациях, когда вы можете быть абсолютно уверены, что то, что вы удаляете, является каталогом и что каталог пуст, прежде чем удалить его (например, в скрипте), и хотите рассматривать его как условие ошибки в противном случае.
rmdir(2)
который может удалить только пустые каталоги.rm -r
: (1) введите команду, но не вводите ее (2) уберите руки от клавиатуры (3) сосчитайте до пяти (4) нажмите ENTER. Я начал делать что-то подобное со всеми опасными командами, чтобы дать мне возможность посмотреть на то, что я делаю, убедиться, что я правильно ввел что-то, подумать о возможных непредвиденных последствиях и т. Д. Иногда это приводит меня например, стереть мою команду и сначала выполнить дополнительные проверки.rm -rf ~ /*
- очистить мой домашний каталог. Или подождите, может быть, очистите систему. Всегда хорошо перепроверять;).rmdir
иrm -r
это две строки одинаковой длины :-)Ответы:
rm -r
удаляет каталог и все его содержимое;rmdir
удалит каталог, только если каталог пуст. Мне нравится использовать следующее, чтобы удалить каталог и все его содержимое:источник
-f
если вам не нужно. Его удобно использовать-rf
каждый раз, но он отключает (почти) все проверки безопасности.-f
флага rm, которая может иметь непредсказуемые, необратимые последствияrmdir
это простоrm -d
?-d
не является стандартной опциейrm
.rm
команды в целом может иметь эти последствия.-f
Флаг полезен при работе вset -e
в сценарии. Я бы согласился, что использование без размышлений не является необходимым .Вы должны использовать это,
rm -r
когда хотите рекурсивно удалить каталог и все его содержимое, или когда целью может быть каталог или файл, и вы хотите удалить его независимо от того, что это такое.Вы должны использовать,
rmdir
когда хотите удалить пустой каталог.Команда
rmdir
полезна, так как она отказывается удалять непустые каталоги и файлы. Это служит уловкой безопасности в ситуациях, когда вы можете быть абсолютно уверены, что то, что вы удаляете, является каталогом и что каталог пуст, прежде чем удалить его (например, в скрипте), и хотите рассматривать его как условие ошибки в противном случае.источник