Como apagar todas as pastas em um diretório usando o bash?

1

Basicamente, quero excluir todas as subpastas, mas deixar todos os arquivos intactos. Por exemplo:

Folder1/
    randomStuff/
         nope.txt
    installer.jar
    build.sh

Eu quero que o randomStuff e seus arquivos sejam deletados, mas mantenha o installer.jar e build.sh intactos.

    
por CodingCosmonaut 27.12.2017 / 18:28

3 respostas

6

Use o fato de que um nome de arquivo que termina em uma barra sempre se refere a um diretório e nunca a um arquivo normal.

O comando

rm -r -- ./*/

realizará o que você descreve.

    
por 27.12.2017 / 18:36
1

Tente isto:

find Folder1/* -type d -exec rm -rf {} +

Isso irá procurar pastas dentro desse diretório e executar o comando rm -rf em cada encontrado.

    
por 27.12.2017 / 18:38
-1

Eu usei o comando awk para conseguir o mesmo.

ls -ltr | awk '$1 ~ "^dr"{print "rm -rvf" " " $9}’ | sh
por 28.12.2017 / 06:00