1 votos

Mover automáticamente los archivos en la carpeta correcta en el servidor

A menudo es necesario para mover archivos de un sitio en un servidor en un conjunto de carpetas jerárquicas.

Los nombres de archivo son normalmente de 7 dígitos de largo - a veces con algunos caracteres adicionales al final.

Las carpetas se configuran como anidada establece para cada dígito - 3 de profundidad. Así, un archivo llamado " 6753687a.eps, por ejemplo, debería ser presentado en el '675' carpeta, que está en el '67' carpeta, que está en el '6' de la carpeta, que está en el 'Imágenes' carpeta en la root del volumen. No hay ningún '6753' carpeta.

Idealmente, me gustaría ser capaz de colocar grupos de archivos en una carpeta o de una gota o algo, y que los archivos se mueven automáticamente en sus carpetas correctas.

¿Alguien sabe de una forma de hacer esto?

1voto

Ged Byrne Puntos 481

Automator Gota

Usted puede hacer esto con un flujo de trabajo de Automator y un script (yo estoy usando Python, pero se podría hacer con Bash, Applescript o de otra cosa).

  1. Abrir Automator, y elija la Aplicación del tipo.
  2. Añadir un Ejecutar el Shell Script de acción para el flujo de trabajo.
  3. En el Ejecutar el Shell Script de acción, establecer el Shell opción a /usr/bin/python, y el Pase de entrada: a como argumentos.
  4. Establecer la secuencia de comandos de texto para la secuencia de comandos, como se muestra a continuación. Asegúrese de cambiar la ruta de destino a su destino deseado.
  5. Guardar la aplicación en la ubicación deseada.

Secuencia de comandos

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: Cambio de la destinationPath = de la línea de la ruta de acceso que desee (es decir, la carpeta que contiene las carpetas numeradas). Asegúrese de conservar las comillas simples alrededor de la ruta.

El uso de

Sólo tienes que arrastrar y soltar los archivos que desea en el archivo de la aplicación se guardan, y estos se moverán en consecuencia. Si las carpetas adecuadas no existe ya, que va a ser creado.

0voto

Supongo que en el origen de las ubicaciones de todos los archivos en un directorio. Abre el Terminal, cambiar a este directorio 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

PS: Esto probablemente va a fallar si uno de los archivos en cuestión tiene un nombre que es de menos de 3 caracteres.

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