Excluindo e recriando pastas no bash

3

Estou usando o programa hazel para arrumar minha pasta de downloads toda vez que um arquivo é baixado. Agora estou dizendo a ele para executar um script de shell, toda semana, para excluir todas as pastas da minha pasta de downloads e, em seguida, recriá-las.

Existe uma maneira mais fácil de fazer isso (excluindo pastas / recriando pastas) reiterando todas as pastas da minha pasta Downloads e excluindo seu conteúdo?

cd ~/Downloads;
rm -rf Archives;
rm -rf DMGs;
rm -rf Documents;
rm -rf Fonts;
rm -rf Mail\ Attachments;
rm -rf Mobile\ Provisioning;
rm -rf Music;
rm -rf Photoshop;
rm -rf Pictures;
rm -rf Videos;

mkdir Archives;
mkdir DMGs;
mkdir Documents;
mkdir Archives;
mkdir Fonts;
mkdir Mobile\ Provisioning;
mkdir Mail\ Attachments;
mkdir Music;
mkdir Photoshop;
mkdir Pictures;
mkdir Videos;
    
por max_ 29.07.2011 / 17:21

4 respostas

6

Que tal:

cd ~/Downloads && rm -rf */*

Ou estou faltando alguma coisa?

Observação: isso não excluirá arquivos / diretórios ocultos imediatamente abaixo do nível superior.

    
por 29.07.2011 / 17:25
9

Se você deseja excluir arquivos deixando a estrutura de pastas completa intacta, use

find . -type f -print -exec rm '{}' ';'

Se você só precisa da estrutura de pastas de nível superior intacta, rm -rf */* como outros sugeriram é bom

    
por 29.07.2011 / 17:29
2

Na verdade, é bem simples, isso faz: rm -rf */*

    
por 29.07.2011 / 17:26
0

Você também pode executar:

find ~/Downloads -type f -exec rm {} \;

Isso excluirá todos os arquivos desse diretório.

Substitua rm {} \; por ls -l {} \; antes de executar para real para verificar se está tudo bem antes de excluir os arquivos.

    
por 29.07.2011 / 17:33

Tags