РЕДАКТИРОВАТЬ: Команда выполнена, а затем я перезагрузил ВМ, поэтому я добавил больше фотографий. Также изменил мой ответ, чтобы включить тот факт, что машина не была полностью забита.
РЕДАКТИРОВАТЬ 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 даже не предупреждает вас!
О, чтобы поразить вход ...
![](https://i.stack.imgur.com/H6QHZ.png)
cygwin64 первым забил
![](https://i.stack.imgur.com/x6SRP.png)
Ссылка Windows Explorer пропала
![](https://i.stack.imgur.com/xzQnV.png)
Меню Пуск все еще здесь
![](https://i.stack.imgur.com/CS3Yx.png)
Там идет изображение рабочего стола!
![](https://i.stack.imgur.com/KRx00.png)
Центр уведомлений все еще в порядке
![](https://i.stack.imgur.com/8PHGD.png)
Кортана тоже!
![](https://i.stack.imgur.com/m2tTk.png)
Корзина для мусора повреждена, но теперь я могу получить доступ к Windows Explorer!
![](https://i.stack.imgur.com/RZZ2n.png)
C: Drive Contents, здесь мало что изменилось
![](https://i.stack.imgur.com/XN5sj.png)
Общий интерфейс все еще работает нормально
![](https://i.stack.imgur.com/9Q9Xy.png)
Меню Пуск больше не отвечает
![](https://i.stack.imgur.com/cKLjX.png)
Музыка живет! Это единственная библиотека, которая осталась стоять
![](https://i.stack.imgur.com/pMvOO.png)
Команда выполнена!
![](https://i.stack.imgur.com/iXN6C.png)
Не так много нового здесь, в C:
![](https://i.stack.imgur.com/9dITO.png)
Приложения по-прежнему работают, если они запускаются из исполняемого файла, данные приложений остаются нетронутыми
![](https://i.stack.imgur.com/ejQPf.png)
Я перезагрузил машину. Нет проблем при загрузке и входе. Программы по-прежнему работают, если вы нажмете на их исполняемый файл. Все еще есть доступ в интернет. Трудно оценить постоянный ущерб. Старт все еще не открывается.
![](https://i.stack.imgur.com/LIvXN.png)