Mover files automáticamente a la carpeta correcta en el server

A menudo necesito mover files de una location en un server a un set de carpetas jerárquicas.

Los nombres de los files generalmente tienen 7 dígitos, algunas veces con algunos caracteres adicionales al final.

  • Automator -> enviar file a correo electrónico (desde el nombre del file)
  • ¿Cómo agrego un script al menu de Servicio?
  • ¿Hay alguna acción de AppleScript o Automator para editar rápidamente la información de video en iTunes?
  • Automator y AppleScript: ¿Cómo importo los texts de Notas y Recordatorios como PDF y RTF?
  • Automator: extraer text PDF y savelo en el directory actual
  • Eliminar o detener permanentemente los antiguos scripts del automatizador
  • Las carpetas se configuran como sets nesteds para cada dígito: 3 de profundidad. Por lo tanto, un file llamado '6753687a.eps', por ejemplo, debería archivarse en la carpeta '675', que está en la carpeta '67', que está en la carpeta '6', que está en la carpeta 'Imágenes' en la raíz del volumen. No hay una carpeta '6753'.

    Idealmente, me gustaría poder colocar grupos de files en una carpeta o un droplet o algo así, y hacer que los files se muevan automáticamente a sus carpetas correctas.

    ¿Alguien sabe de una manera de hacer esto?

  • ¿Cómo puedo ejecutar un script sin firmar en Automator?
  • Exportar image desde el portapapeles a la carpeta
  • Transmitir acciones de Automator que no se están cargando
  • ¿Cómo puedo acceder al llavero remotamente desde la línea de command?
  • Texto de Automator PDF a file de audio hablado: ¿Qué hay de malo en este script?
  • Traducir script de shell que no funciona dentro de Automator
  • 2 Solutions collect form web for “Mover files automáticamente a la carpeta correcta en el server”

    Automator Droplet

    Puedes hacer esto con un flujo de trabajo de Automator y un script (estoy usando Python, pero podría hacerse con Bash, Applescript o cualquier otra cosa en realidad).

    1. Abre Automator y selecciona Tipo de aplicación .
    2. Agregue una acción Ejecutar script de shell al flujo de trabajo.
    3. En la acción Ejecutar script de shell , configure la opción de Shell en /usr/bin/python , y Pase input: como arguments .
    4. Establezca el text del script en el script como se muestra a continuación. Asegúrese de cambiar la ruta de destino a su destino deseado.
    5. Guarde la aplicación en su location deseada.

    Guión

     import sys import os import subprocess destinationPath = '/Users/rob/Desktop/test' for f in sys.argv[1:]: name = os.path.basename(f) newdir = os.path.join(destinationPath, name[:1], name[:2], name[:3]) print newdir if not os.path.exists(newdir): os.makedirs(newdir) subprocess.call(['mv', f, os.path.join(newdir,name)]) #eof 

    Importante: Cambie destinationPath = line a la ruta que desee ( es decir, la carpeta que contiene sus carpetas numeradas). Asegúrese de conservar las comillas simples alnetworkingedor de la ruta.

    Uso

    Simplemente arrastre y suelte los files que desea en el file de la aplicación que guardó, y se moverán en consecuencia. Si las carpetas adecuadas ya no existen, se crearán.

    Supongo que en las ubicaciones de origen todos los files están en un directory. Abrir Terminal, cambiar a este directory y ejecutar

     for i in *; do target="PATH/TO/Images/${i:0:1}/${i:0:2}/${i:0:3}" mkdir -p "$target" mv -v "$i" "$target"/ done 

    PD: Esto probablemente fallará si uno de los files en cuestión tiene un nombre que es más corto que 3 caracteres.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).