Remoção recursiva, preservar diretórios no Linux

1

Em uma linha de comando do Linux é possível - sem avisar - remover arquivos recursivamente (como em rm -r [path] ), mas preservar diretórios em [path] ?

EDITAR: Para os interessados, usei a resposta de Paulo abaixo para criar este script útil para uso em meus Makefiles (substitua $ (DIRS) pelos caminhos a serem limpos - por exemplo, diretórios bin e build):

clean:
    @if [ $$(find bin -type f | wc -l) -gt 0 ]; \
    then { \
        echo "The following will be deleted:"; \
        echo "------------------------------"; \
        find $(DIRS) -type f; \
        echo "------------------------------"; \
        read -p "Continue (y/n)? " -n 1 -r CONTINUE; \
        echo; \
    }; \
    else echo "No files to delete."; \
    fi; \
    \
    if [[ $$CONTINUE =~ ^[Yy]$$ ]]; \
    then find $(DIRS) -type f -delete; \
    fi;
    
por Conduit 16.12.2015 / 23:25

1 resposta

3

Sim, você pode usar find :

find [path] -type f -delete

Execute-o sem excluir primeiro para garantir que esteja segmentando os arquivos corretos. type f significa procurar apenas arquivos, não diretórios.

    
por 16.12.2015 / 23:29