Simples e direto:
find -delete
Inclui diretórios e arquivos ocultos. Pelo menos gnu-find sabe -delete
, seu find
pode ser diferente.
Sinto muito por fazer uma pergunta tão básica:
Como eu excluo tudo em um diretório, incluindo arquivos e diretórios ocultos?
Neste momento, uso o seguinte:
rm -rf *
rm -rf .*
Simples e direto:
find -delete
Inclui diretórios e arquivos ocultos. Pelo menos gnu-find sabe -delete
, seu find
pode ser diferente.
A melhor resposta é: não faça isso. Recursivamente, remova o próprio diretório e recrie-o como um diretório vazio. É mais confiável e fácil para outras pessoas entenderem o que você está tentando fazer. Quando você recriar o diretório, ele pode ter um proprietário, grupo e permissões diferentes. Se esses são importantes, tenha cuidado. Além disso, se algum programa em execução tiver identificadores de arquivos abertos (descritores) no diretório, não será necessário removê-lo. Se nenhum desses casos especiais se aplicar, será mais simples remover o diretório inteiro.
rm -rf -- * .[!.]* ..?*
Cada um dos três padrões se expande para si mesmo se não corresponder a nada, mas isso não é um problema aqui, pois queremos corresponder tudo e rm -f
ignorou argumentos inexistentes.
Observe que .*
corresponderia a ..
.
Assumindo o bash 4 +:
shopt -s dotglob
rm -rf -- *
##or:
rm -rf ./*
Com o dotglob ativado, *
se expande para todos os arquivos e diretórios, mesmo aqueles que começam com .
- mas não expandem para .
e ..
, por isso é É seguro usar com rm
.
se você estiver no diretório:
cd .. && rm -rf dir && mkdir dir && cd dir
caso contrário:
rm -rf /path/to/dir && mkdir /path/to/dir
Oh meu Zsh
rm -rf (.|)*
Novamente, isso é apenas para o Zsh.
Que tal usar find
. Eu acho que esta é geralmente uma boa escolha, quando você tem que cavar através de subdiretórios.
find . -type f -exec rm {} \;
Experimente rm -rf *?*
. Isso excluirá arquivos normais e ocultos.