Правильно, что rm –rf .
удалит все в текущем напрямую, включая любые подкаталоги и их содержимое. одна точка (.
) означает текущий каталог. будьте осторожны, чтобы не выполнить rm -rf ..
, поскольку двойная точка (..
) означает предыдущий каталог.
При этом, если вы похожи на меня и у вас открыто несколько окон терминала, вам лучше быть в безопасности и использовать rm -ir .
Давайте посмотрим на аргументы команды, чтобы понять, почему.
Во-первых, если вы посмотрите на справочную страницу команды rm
(man rm
в большинстве Unix), вы заметите, что –r
означает «рекурсивное удаление содержимого каталогов». Таким образом, выполнение только rm -r .
приведет к удалению всего в текущем каталоге и всего ниже.
В rm –rf .
добавленный -f означает «игнорировать несуществующие файлы, никогда не запрашивать». Эта команда удаляет все файлы и каталоги в текущем каталоге и никогда не предлагает вам подтвердить, что вы действительно хотите это сделать. -f
особенно опасно, если вы запускаете команду под привилегированным пользователем, поскольку вы можете удалить содержимое любого каталога, не имея возможности убедиться, что это действительно то, что вам нужно.
С другой стороны, в rm -ri .
-i
, который заменяет -f
, означает «запрос перед любым удалением». Это означает, что у вас будет возможность сказать «упс! Это не то, что я хочу», прежде чем rm удачно удалит все ваши файлы.
В мои первые дни сисадмина я делал rm -rf /
в системе, когда входил в систему с полными привилегиями (root). В итоге прошло два дня восстановления системы из резервных копий. Вот почему я сейчас использую rm -ri
сейчас.