Tengo algunas carpetas que se crearon por error. Me gustaría eliminar estas carpetas.
¬ 636
¬ 636.empty
¬ 637
¬ 638.empty
¬ 639
¬ 639.empty
En esta situación, me gustaría eliminar 636.empty
y dejar la carpeta restante que no esté vacía.
Después de haber ejecutado el comando de terminal, me gustaría que sister
se eliminen todas las carpetas de una carpeta.
¬ 636
¬ 637
¬ 638.empty
¬ 639
Las carpetas eliminadas serían:
¬ 636.empty
¬ 639.empty
Tengo algunas 25,000
carpetas, tal vez 1000
algunas de estas estén duplicadas con la empty
carpeta.
Respuesta1
Recorra todos los directorios nombrados *empty
y verifique si el mismo directorio .empty
existe y elimínelo si es verdadero:
for d in *.empty; do
[ -d "$d" ] && [ -d "${d%.empty}" ] && rmdir "$d"
done
Reemplace rmdir
con rm -rf
si el directorio no está vacío a pesar de su nombre ;-)
Una find
alternativa:
find -maxdepth 1 -type d -name '*.empty' \
-exec sh -c '[ -d "${1%.empty}" ]' find-sh {} \; \
-delete
Reemplace -delete
con -exec rm -rf {} \;
si el directorio no está vacío.