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.
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.
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.
Eu usei o comando awk para conseguir o mesmo.
ls -ltr | awk '$1 ~ "^dr"{print "rm -rvf" " " $9}’ | sh