РЕДАКТИРОВАТЬ: Команда выполнена, а затем я перезагрузил ВМ, поэтому я добавил больше фотографий. Также изменил мой ответ, чтобы включить тот факт, что машина не была полностью забита.
РЕДАКТИРОВАТЬ 2: У меня все еще есть VM. Дайте мне знать в комментариях, если у вас есть что-то, что вы хотите, чтобы я попробовал на нем из любопытства.
РЕДАКТИРОВАТЬ 3: Я решил поэкспериментировать немного больше. Я восстановил снимок, который сделал прямо перед запуском команды, я поместил одну папку выше C:\cygwin
и одну папку ниже. Затем я запустил команду и очень быстро ctrl-c
. Папка cygwin все еще существовала (внутри она была в основном пуста), но папка над ней была стерта. Сгенерированная пользователем папка под ней также не пострадала. Затем я восстановил состояние и снова выполнил команду, на этот раз немного дольше, чем ctrl-c
. Теперь он удалил как папку выше cygwin, сам cygwin, так и папку ниже.
Когда я запускал это на своем компьютере в реальной жизни, папка C:\cygwin64
была целой, что означало , что все, что находится под ней в алфавитном порядке, было безопасно. Это дает мне некоторое спокойствие, теперь я точно знаю, что единственными папками, которые были выброшены, были папки выше C:\cygwin64
, которые в любом случае обычно являются просто временными папками или некоторыми другими несущественными папками.
TLDR: не запускайте rm -rf /*
или rm -rf /
EVER.
TLDR2: я создал виртуальную машину Windows 10, установил Cygwin и запустил rm -rf /*
.ВМ испортилась. Чтобы ответить на мой собственный вопрос: Да, он удалил бы все, что он имеет разрешение на доступ к вашему жесткому диску. Если бы я не отменил команду так быстро, как когда это происходило на моей реальной машине, она удалила бы все мои личные файлы. Общая ОС все равно не пострадает.
Итак, я решил создать виртуальную машину Windows 10 и попробовать это с нуля. Вот что случилось. Cygwin не позволяет вам выполнить rm -rf /
по соображениям безопасности (есть опция переопределения)... но rm -rf /*
, очевидно, отлично работает без предупреждения.
Я понял, что в моем исходном скрипте я удалял все файлы в указанном каталоге, поэтому я использовал rm -rf $1/*
, поэтому, если $1
пусто ... выполняется команда уничтожить ваш жесткий диск, и Cygwin даже не предупреждает вас!
О, чтобы поразить вход ...
cygwin64 первым забил
Ссылка Windows Explorer пропала
Меню Пуск все еще здесь
Там идет изображение рабочего стола!
Центр уведомлений все еще в порядке
Кортана тоже!
Корзина для мусора повреждена, но теперь я могу получить доступ к Windows Explorer!
C: Drive Contents, здесь мало что изменилось
Общий интерфейс все еще работает нормально
Меню Пуск больше не отвечает
Музыка живет! Это единственная библиотека, которая осталась стоять
Команда выполнена!
Не так много нового здесь, в C:
Приложения по-прежнему работают, если они запускаются из исполняемого файла, данные приложений остаются нетронутыми
Я перезагрузил машину. Нет проблем при загрузке и входе. Программы по-прежнему работают, если вы нажмете на их исполняемый файл. Все еще есть доступ в интернет. Трудно оценить постоянный ущерб. Старт все еще не открывается.