Как использовать «rm -rf --no-preserve-root» в bash в Windows

850
c2416726

После включения режима разработчика и установки Windows Subsystem for Linux, как я могу использовать rmкоманду в оболочке bash, работающей в режиме администратора?

Пример:

rm -rf --no-preserve-root C:/Windows/System32 
1
Попробуйте удалить часть `C:`. Linux не использует такие вещи. (Я не уверен, что подсистема Linux позволяет это, однако) Riker 7 лет назад 0
** ПРЕДУПРЕЖДЕНИЕ **: Если это сработает, эта команда сломает Windows ... DavidPostill 7 лет назад 0
Вы ищете `/ mnt / c / ...`, но смотрите предупреждение выше. DavidPostill 7 лет назад 0
@DavidPostill Использование `/ mnt / c /` может работать при использовании ОС Unix, но сработает ли команда успешно при запуске в bash в Windows? Потому что я думаю, что в Windows нет эквивалента `preserve-root`. c2416726 7 лет назад 0
Но .... э-э ... почему? просто запустите `format C:` из обычного cmd rahuldottech 7 лет назад 0
@ c2416726 Да, будет. Смотри мой ответ. DavidPostill 7 лет назад 0
@ Rahul2001, потому что команда `rm` является стандартом, совместимым с POSIX, а` format` - это закрытая реализация от Micro $ oft. c2416726 7 лет назад 0
@ c2416726 это имеет значение до тех пор, пока в итоге вы просто рушите ОС? rahuldottech 7 лет назад 0
`--no-preserve-root` не делает то, что вы думаете. Daniel B 7 лет назад 0
@DanielB Ты уверен? Смотри мой ответ. DavidPostill 7 лет назад 0
@DavidPostill Да, здесь это совершенно не имеет значения, если только некоторые детали реализации не мешают ему. `--preserve-root`, по умолчанию, заставляет` rm` проверять, какое устройство смонтировано в `/`. Затем он будет пропускать экземпляры этого устройства при удалении. Поскольку `/` должен отличаться от `/ mnt / c` (но, опять же, кто знает), здесь это не должно иметь никакого значения. Daniel B 7 лет назад 0
@DanielB Прочитайте мой ответ. `/` и `/ mnt / c` ведут себя по-разному, когда дело доходит до` rm -rf --no-preserve-root`. Запуск `rm -rf --no- preserve-root" / "` только уничтожит вашу установку подсистемы Windows для Linux. `Запуск rm -rf --no- preserve-root" / mnt / c / windows / system32 / "` будет использовать Windows. DavidPostill 7 лет назад 0
Да, но я не об этом. Я говорю, что `rm / mnt / c` и` rm --no-preserve-root / mnt / c` должны работать точно так же. Daniel B 7 лет назад 0

1 ответ на вопрос

1
DavidPostill

Как я могу использовать команду rm в оболочке bash, работающей в режиме администратора?

Пример:

 rm -rf --no-preserve-root C:/Windows/System32 

ВНИМАНИЕ: не пытайтесь сделать следующее.

При использовании bash в WLS вам нужно обращаться к дискам с помощью mountточек, так C:/становится /mnt/c/.

Однако, если вы попытаетесь выполнить указанную выше команду, исправленную, как я уже описал, вы уничтожите Windows .

Во время выполнения команды вы начнете замечать, что Windows вернется к настройкам программы по умолчанию, поскольку приложения и классические программы полностью или частично удаляются из вашей системы. Вы также заметите, что настройки, такие как темы и фоны рабочего стола, начнут выпадать. Если вы еще этого не осознали, ваша система скоро умрет.

Продолжайте читать для всех кровавых деталей.


rm -rf / в Windows Подсистема для Linux выявляет острый набор зубов

Не запускайте команды, упомянутые в этой статье. Они намеренно очень разрушительны для вашей системы Windows.

Я попробовал запустить rm ​-rf --no-​preserve-root "/​mnt/c"новую подсистему Windows для Linux. Я знал, что могу взаимодействовать с полной файловой системой, изменять и удалять файлы, но я не ожидал, что это будет настолько мощным, как оказалось.

Во время выполнения команды вы начнете замечать, что Windows вернется к настройкам программы по умолчанию, поскольку приложения и классические программы полностью или частично удаляются из вашей системы. Вы также заметите, что настройки, такие как темы и фоны рабочего стола, начнут выпадать. Если вы еще этого не осознали, ваша система скоро умрет.

Как и при выполнении этой команды под полным ядром Linux, система обычно сгибается, прежде чем ей удастся полностью удалить каждый файл. Файлы, загруженные в настоящее время ядром Windows, и файлы, недоступные для записи пользователям в группе пользователей «Администратор» в Windows, не будут удалены. Это, однако, все равно удалит большие куски критических системных файлов и программ в Windows.

Выполнение вышеуказанной команды удалит около 12 000 файлов в каталоге установки Windows по умолчанию на C: Windows, а также все пользовательские файлы в C: Users и сделает вашу систему неспособной к загрузке снова! Хотя вы все еще можете продолжать работать в сессии в течение довольно долгого времени, она в конечном итоге перестанет отвечать на запросы и выбросит вас в синий экран. После перезагрузки Windows будет отсутствовать драйверы и другие необходимые файлы.

Запуск rm ​-rf --no-​preserve-root "/​"только разрушит вашу установку подсистемы Windows для Linux. Запуск lxrun.exe /uninstall /full /y && lxrun.exe /install /yв командной строке переустановит ее, и вы сразу же сможете выполнить резервное копирование и запуск в Ubuntu. Он не будет проходить по символической ссылке на файловую систему Windows в точке монтирования и начнет удалять объекты на диске C :. Сделав это явно с первой командой, которую я упомянул, вы не остановите вашу систему.

Исходный код rm -rf / в подсистеме Windows для Linux обнаруживает острый набор зубов