Como eu excluo um diretório que tenha muitos subdiretórios?

1

Eu tenho um diretório com muitos subdiretórios. Eu tentei fazer

rm -rf mydirectory

mas ainda estava em exibição após 1 hora. Eu tentei obter o número de subdiretórios com

ls -l . | egrep -c '^-'

mas não terminou após 30 minutos.

Existe uma maneira mais rápida de excluir recursivamente um diretório inteiro?

    
por chris 13.12.2010 / 22:40

2 respostas

2

/usr/bin/find /mydir_with_many_subdirs -exec rm {} \;

você também pode filtrar com

/usr/bin/find /mydir_with_many_subdirs -type f -exec rm {} \;  -- will delete all files
/usr/bin/find /mydir_with_many_subdirs -mtime +10 -exec rm {} \;  -- will delete dirs and files older then 10
O

man find irá fornecer mais filtros que você pode aplicar.

    
por 13.12.2010 / 23:07
0

Isso deve funcionar, mas eu não usaria a opção -f. Nem eu iria querer executar esse comando como root! Se houver links simbólicos que apontem para / var / log ou / usr / lib, você terá problemas mais rápido do que você pode dizer "OMGWTF!"

Qual é provavelmente também o problema que você está encontrando aqui - existem links simbólicos que vão para diretórios muito grandes, ou links simbólicos que entram em algum tipo de loop infinito. Não deve levar tanto tempo para remover um diretório pequeno que não tem muito o que recorrer.

    
por 13.12.2010 / 22:45

Tags