Existe uma diferença entre rm -rf / e rm -rf *. *?

Irá rm -rf *.* corromper seu sistema de arquivos enquanto rm -rf / não o fará isso?

Comentários

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 incorporado rm não é compatível com o POSIX mais recente.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *