Home >> Móvil >> Consejos y trucos >> IOS

Aplanar una jerarquía de directorios anidados en macOS desde Terminal

Si tienes una carpeta con muchas subcarpetas y quieres mover todos los archivos al nivel superior (aplanar), la línea de comandos lo hace en segundos.

Comando único (copia y pega en Terminal)

find /ruta/a/TuCarpeta -mindepth 2 -type f -exec mv -i '{}' /ruta/a/TuCarpeta ';'

Explicación:

  • find busca recursivamente.
  • -mindepth 2 ignora archivos ya en la carpeta raíz (profundidad 1).
  • -type f solo archivos (no carpetas).
  • -exec mv -i '{}' destino ';' mueve cada archivo a la carpeta raíz; -i pide confirmación si hay nombre duplicado.

Ejemplo real

Carpeta ~/TestDirectory con subcarpetas Sub1, Sub2… cada una con archivos.

find ~/TestDirectory -mindepth 2 -type f -exec mv -i '{}' ~/TestDirectory ';'

Resultado: todos los archivos en ~/TestDirectory; subcarpetas quedan vacías (puedes borrarlas después).

Precauciones

  • Haz copia de seguridad antes (Time Machine o duplicar la carpeta).
  • El comando no es reversible fácilmente.
  • Si hay nombres de archivo duplicados en distintas subcarpetas, -i te pedirá confirmación para cada uno (puedes usar -n para no sobrescribir, pero entonces algunos no se moverán).

Alternativa gráfica: en Finder, vista de lista, Opción + clic en los triángulos para expandir todo, selecciona todos los archivos (⌘A), arrástralos a la carpeta padre.