É possível remover o diretório raiz?

5

Observei na documentação rmcomo obtido pelo rm --helpseguinte sinalizador:

--no-preserve-root  do not treat `/' specially

O que isto significa? É realmente possível excluir o diretório raiz, além de seu conteúdo ? Que consequências isso teria?

gerrit
fonte
2
Sim, eles estabelecem uma proteção contra as pessoas que tentam rm -rf /. Eles colocam isso em prática porque sim, você pode e seu sistema será inútil.
Nerdwaller 28/01
No meu entendimento, rm -rf /exclui o conteúdo do diretório raiz; mas o próprio diretório raiz ainda não existiria?
gerrit
1
@gerrit: Sim, seria. Mas esse comando é precisamente o motivo pelo qual o modo "preservar raiz" foi adicionado: rm se recusa a operar recursivamente, a /menos que você adicione a --no-preserve-rootopção.
grawity

Respostas:

15

Você não pode excluir o próprio diretório raiz. No entanto, você pode usar de rm recursiva modo para apagar tudo em que diretório - o infame rm -rf /comando.

O modo "preservar raiz" para rmde operar recursivamente no diretório raiz:

$ sudo rm -rf /
rm: it is dangerous to operate recursively on ‘/’
rm: use --no-preserve-root to override this failsafe

A --preserve-rootopção foi adicionada ao GNU rm em 2003 (commit 9be74f6f125b2be) e tornou-se o comportamento padrão em 2006 (commit aff5a4f2ab86f).

Alguns dizem que é porque os brincalhões no #ubuntu ficavam dizendo aos novatos para correr rm -rf /- e muitos o fizeram. Alguns dizem que é porque é muito fácil digitar errado rm -rf / tmp/junk . Alguns dizem que é para evitar acidentes ao executar rm -rf $dir/quando $ dir está vazio.Tudo o que sabemos é que ele se chama th

De qualquer forma, faz parte dos requisitos do POSIX atualmente. O Solaris rm também possui proteção semelhante , assim como o OpenBSD .

gravidade
fonte
3
Você realmente se atreveu a digitar isso de verdade?
gerrit
2
O Linux é barato, assim como os computadores antigos. Admita que você fez isso em um sistema desativado para ver como criar rapidamente espaço em disco. E a resposta é sim.
Fiasco Labs