2 votos

¿Mover varios archivos de subcarpetas a la carpeta principal en Mojave?

Estoy intentando mover los archivos de múltiples (más de 100) subcarpetas a la carpeta principal, pero no quiero hacerlo manualmente para cada una. ¿Hay algo que pueda hacer para automatizarlo?

He probado soluciones para sistemas operativos antiguos y no parecen funcionar, y no entiendo del todo https://discussions.apple.com/thread/8385501

Gracias.

1voto

En la ejecución de la Terminal

cd PARENTFOLDER
mkdir -p $TMPDIR/move
mv */* $TMPDIR/move/
rmdir *
mv $TMPDIR/move/* .
rmdir $TMPDIR/move

Tenga en cuenta

  • Esto conducirá a la pérdida de datos si los archivos en diferentes subcarpetas tienen el mismo nombre.
  • rmdir * fallará si las subcarpetas no están vacías después del traslado (por ejemplo, si contienen archivos/directorios que comienzan con un . )
  • Funciona moviendo primero los archivos dentro de las subcarpetas a una ubicación temporal, luego eliminando las propias subcarpetas y después moviendo los archivos desde su ubicación temporal de vuelta a la carpeta principal. Los movimientos son rápidos si están en la misma unidad, son muy lentos (y pueden fallar por falta de espacio en disco) si la carpeta principal está en una unidad externa

Para la versión ampliada que has pedido en los comentarios

¿Existe una manera fácil de aplicar esto por lotes para toda una carpeta? Por ejemplo: Año (carpeta principal) > Mes > Día 1, 2, etc. ¿Puedo aplicar su función a todas las carpetas de Year, con el contenido de Day 1 & 2 en Month, pero el contenido de Month no va a Year?

_tmp=$(mktemp -d)
cd YEAR
for month in *; do
    [[ -d "$month" ]] || continue

    echo mv -- "$month"/*/* "$_tmp"/
    echo rmdir -- "$month"/*
    echo mv "$_tmp"/* "$month"/
done
rmdir "$_tmp"

Retire el echo s si el resultado de la ejecución en seco parece correcto.

0voto

ipp Puntos 13

Además de la respuesta de nohillside, puedes utilizar Spotlight para buscar los archivos dentro de la carpeta principal.

Así, por ejemplo, si tienes cientos de archivos de texto repartidos por carpetas dentro de una única carpeta principal, puedes utilizar la función de búsqueda del Finder para buscar archivos de texto de cualquier nombre. Sólo tienes que escribir en el cuadro de búsqueda "texto" -o cualquier otro formato, como "docx", o nombre de la aplicación, como "word"- y aparecerá una lista desplegable. Elige el formato que desees y Finder buscará en el directorio actual cualquier archivo correspondiente a ese formato.

Luego, con los archivos organizados en la ventana de búsqueda, puedes seleccionarlos todos y moverlos a otra carpeta de tu elección.

Este método, aunque es un poco tedioso, también se puede utilizar para archivos de diferentes formatos, siempre que se utilice el Finder para buscar cada formato (como .txt o .docx), se seleccionen y muevan todos los resultados, y luego se vuelvan a buscar los formatos de archivo restantes dentro de la carpeta principal.

Espero que esto ayude.

EDIT: No sé cómo afectaría esto a los archivos que tienen el mismo nombre, así que podría ser una buena idea probar en algunos archivos antes de proceder.

-1voto

user3439894 Puntos 5883

Estoy tratando de mover los archivos de múltiples (más de 100) subcarpetas a la carpeta principal, pero no quiero hacerlo manualmente para cada una. ¿Hay algo que pueda hacer para automatizarlo?

Esta es una forma de manejarlo...

  1. Abrir Terminal .

  2. Cambiar directorio a la directorio principal que contiene el subdirectorios Por ejemplo:

     cd /path/to/parent
  3. Utilice lo siguiente comando para mover todo archivos en el subdirectorios a la directorio principal , el que el cd comando en el paso anterior:

     find . -type f -name '*' -exec mv -n '{}' . \;
    • Tenga en cuenta que este comando sólo se mueve archivos no carpetas o paquetes de aplicaciones y no sobrescribir archivos del mismo nombre ya en el directorio principal .
  4. Para eliminar el vacío subdirectorios utilice lo siguiente comando :

     find . -type d -name '*' -exec rm -d '{}' \;
    • Tenga en cuenta que cualquier subdirectorios no borrado contiene archivos del mismo nombre ya en el directorio principal o un paquete de aplicaciones si es que existe. Puedes decidir cómo manejarlo después de ver lo que queda. Si sólo hay unos pocos archivos no se movieron tal vez sólo hacer los pocos archivos manualmente.

NOTA: Asegúrese siempre de tener copias de seguridad adecuadas antes de ejecutar comandos en Terminal y el comandos tal y como se ha escrito, producirá el comportamiento deseado.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X