exclui recursivamente mas mantém o arquivo .gitignore

0

Eu tenho experimentado vários métodos da SU, mas não consegui fazer isso: Eu tenho uma pasta (exemplo: / var / www / tmp /) que contém vários arquivos e diretórios. Gostaria de excluir todos os arquivos e pastas desse diretório, exceto os arquivos ocultos que residem em / var / www / tmp, como posso fazer isso?

Obrigado!

edit: para ficar claro, eu gostaria de usar isso em um cronjob

    
por FLX 18.04.2012 / 16:37

2 respostas

1
find /var/www/tmp -mindepth 1 -maxdepth 1 ! -name ".*" -exec rm -r -- {} +

Irá encontrar arquivos no máximo (e mínimo) de profundidade 1 (ou seja, arquivos diretamente no diretório fornecido) que não inicie com um período e execute rm -r com as correspondências como argumentos.

Experimente com um simples eco ou algo em primeiro lugar para não atirar no pé antes de entender exatamente como isso funciona para você.

Isso resolve sua dúvida sobre manter todos os arquivos ocultos. Seu tópico é um pouco diferente, mas o comando find é facilmente modificado para simplesmente ignorar arquivos chamados .gitignore .

    
por 18.04.2012 / 16:55
2

A menos que você tenha a opção de shell dotglob set, cd /var/www/tmp; rm -rf * fará o que quiser

    
por 18.04.2012 / 16:43