Como deletar o conteúdo de todos os subdiretórios chamados “output”?

3

Eu baixei um projeto da web.Quando construindo o projeto, ele produz arquivos de saída na pasta chamada saída .O problema é que existem muitas pastas com o mesmo nome.Eu preciso excluir manualmente os arquivos em todos output diretórios.

Eu usei este comando

find . -type d -name "output" -print

Exibe a localização de todos os diretórios com o mesmo nome.

Então eu usei este comando

find . -type d -name "output" -delete

find: cannot delete ‘./output’: Directory not empty

Eu não quero excluir a pasta output que desejo excluir todos os arquivos sob o nome da pasta output .

    
por Jeeva 17.05.2017 / 15:25

2 respostas

2

Se o seu find tem -mindepth e -delete (pelo menos, GNU ou BSD):

find . -name output -type d -exec find {} -mindepth 1 -delete \;
    
por 17.05.2017 / 16:14
2

Você pode usar as seguintes formas, dependendo da versão do find que você possa ter.

GNU encontra:

find . -type f -path '*/output/*' -exec echo rm -f {} \;

POSIX-find

find . -type d -name output -exec sh -c 'find "$1"/. ! -name . -prune -type f -exec rm -f \{\} \;' {} {} \;
    
por 17.05.2017 / 16:00

Tags