Irá rm -rf *.*
corromper seu sistema de arquivos enquanto rm -rf /
não o fará isso?
Comentários
- Unix e Linux Stack Exchange têm sido úteis por mais de 6 anos, e SuperUser também: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
Resposta
Lá “Não há nada de especial nisso, rm -rf *.*
é um comando com um caractere curinga de nome de arquivo, ele removerá recursivamente todos os arquivos no diretório atual que contêm um ponto em seus nomes.
rm -rf /
daria um erro ao tentar executar rm
no diretório raiz. Isso é exigido por POSIX :
Se […] um operando reso lves para o diretório raiz, rm deve escrever uma mensagem de diagnóstico para o erro padrão e nada mais fazer com tais operandos.
Dependendo no shell e suas configurações, *.*
também pode corresponder a ..
para o diretório pai, mas também o /
, tentar removê-lo também é um erro.
Nenhum deles corromperá o sistema de arquivos, rm
apenas (tentará) remover arquivos usando as chamadas usuais do sistema de arquivos. O efeito no sistema como um todo, ou nos arquivos do usuário, pode obviamente ser substancial se o primeiro comando for executado em um diretório contendo arquivos importantes.
Comentários
- para versões suficientemente novas do GNU
rm
(recurso originalmente roubado do Solaris IIRC). Melhor não chorar se seu peso leve incorporadorm
não é compatível com o POSIX mais recente.