rm -r * no unix [duplicado]

1

Estou prestes a digitar o comando: rm -r * em um diretório onde gostaria que todos os arquivos e diretórios (e seus arquivos) fossem removidos. Minha preocupação é que o unix também possui os diretórios ./ e ../ . rm -r deve seguir todos os diretórios: isso significa que ele seguirá ../ e excluirá os itens nos diretórios superiores? Não consigo encontrar a resposta para isso pesquisando.

    
por Alex 10.02.2014 / 07:13

1 resposta

5

POSIXly, * não se expande para incluir . e .. (ou qualquer nome de arquivo começando com um ponto), a menos que você inclua explicitamente usando opções específicas ao seu shell (por exemplo, dotglob no bash) .

É "seguro" (a menos que qualquer um dos seus arquivos inicie com um traço, caso você use rm -- * ), assumindo que é isso que você pretende fazer, mas não excluirá arquivos com nomes de arquivos começando com um ponto.

Posso sugerir que você faça isso:

cd .. && rm -r directory
    
por 10.02.2014 / 07:18

Tags