
Suponha que no diretório atual existam vários subdiretórios e um seja chamado A.
Como deletar todos os subdiretórios exceto A com Bash?
Responder1
Bash estendeu o globbing (primeiro teste e depois remova o eco):
shopt -s extglob
echo rm -rf !(A)
Responder2
find -maxdepth 1 -type d -not -name A -not -name "." -exec rm -ir {} \;
Responder3
A respeito:
mv A /tmp/
rm * -rf
mv /tmp/A .
Isso evita um pouco do "assustador" de um erro de digitação nos outros comandos.
Por favor, esteja cientepara não estar na pasta raiz (/) ao executar o comando rm * -rf acima.
Responder4
normalmente faço isso elaborando um comando ls que acerta primeiro. não estou em uma máquina unix, mas algo como:
ls -lda "[^A]"
Depois de acertar, canalize para um comando
ls -lda "[^A]" | xargs rm-rf
Sinta-se à vontade para editar acima se eu tiver errado minha expressão regular ...