Excluindo e recriando pastas no bash

Excluindo e recriando pastas no bash

Estou usando o programa Hazel para organizar minha pasta de downloads sempre que um arquivo é baixado. Agora estou dizendo para ele executar um script de shell, toda semana, para excluir todas as pastas da minha pasta de downloads e depois recriá-las.

Existe uma maneira mais fácil de fazer isso (excluindo pastas/recriando pastas) repetindo 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;

Responder1

Que tal:

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

Ou eu estou esquecendo de alguma coisa?

Nota: Isso não excluirá arquivos/diretórios ocultos imediatamente abaixo do nível superior.

Responder2

Se você deseja excluir arquivos deixando intacta a estrutura de pastas completa, 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

Responder3

Na verdade, é muito simples, isso resolverá:rm -rf */*

Responder4

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 de verdade para verificar se está tudo bem antes de excluir os arquivos.

informação relacionada