Tenho algumas pastas que foram criadas por engano. Eu gostaria de remover essas pastas.
¬ 636
¬ 636.empty
¬ 637
¬ 638.empty
¬ 639
¬ 639.empty
Nesta situação eu gostaria de remover 636.empty
e deixar a pasta vazia restante.
Depois de executar o comando do terminal, gostaria que todas as pastas de uma sister
pasta fossem removidas.
¬ 636
¬ 637
¬ 638.empty
¬ 639
As pastas removidas seriam:
¬ 636.empty
¬ 639.empty
Eu tenho algumas 25,000
pastas, talvez 1000
elas sejam duplicadas da empty
pasta
Responder1
Faça um loop por todos os diretórios nomeados *empty
e verifique se o mesmo diretório .empty
existe e exclua se for verdade:
for d in *.empty; do
[ -d "$d" ] && [ -d "${d%.empty}" ] && rmdir "$d"
done
Substitua rmdir
por rm -rf
se o diretório não estiver vazio apesar do nome ;-)
Uma find
alternativa:
find -maxdepth 1 -type d -name '*.empty' \
-exec sh -c '[ -d "${1%.empty}" ]' find-sh {} \; \
-delete
Substitua -delete
por -exec rm -rf {} \;
se o diretório não estiver vazio.