El siguiente ejemplo Automator Folder Action workflow funciona para mí.
Esto se probó con un archivo y muchos archivos a la vez en más de media docena de pruebas con diferentes conteos y tamaños de archivos, sin embargo, advierto que este simple flujo de trabajo puede ahogarse si se invoca con muchos archivos realmente grandes a la vez.
Configure el flujo de trabajo según las acciones individuales en el orden que se muestra en la imagen a continuación y las Opciones que se muestran en las dos Obtener valor de variable acciones . Las cuales están en orden:
- Comience con la configuración de la carpeta de destino para: Folder Action recibe los archivos y carpetas agregados a
- Agregue un Establecer valor de variable acción , dando a la Variable: un nombre pertinente.
- Agregue una Obtener valor de variable acción , mientras establece el valor del cuadro de lista Variable: en el valor de de Variable: establecido en Establecer valor de variable acción , y marque [√] Ignorar esta entrada de acciones casilla de verificación debajo de sus Opciones .
- Agregue una Copia de elementos del buscador acción , mientras configura el cuadro de lista Para: en una carpeta de destino .
- Agregue una Obtener valor de variable acción , mientras establece el valor del cuadro de lista Variable: en el valor de de Variable: establecido en Establecer valor de variable acción , y marque [√] Ignorar esta entrada de acciones casilla de verificación debajo de sus Opciones .
- Agregue una acción Mover elementos del buscador , mientras configura el cuadro de lista A: en la carpeta de destino correspondiente.
Nota:EstaopciónworkflowserealizóparamostrarcómorealizarlatareasinelusodeshellscriptingyunaEjecuciónShellScriptaction,yaquealgunosusuariospuedennosentirsecómodosalutilizarshellscripting.
Sisesientecómodoutilizandoshellscripting,esteejemploAutomatorFolderActionworkflowtambiénfuncionaparamí.
Configureelflujodetrabajodeacuerdoconlaacciónindividualquesemuestraenlaimagenacontinuación:
- Comienceconlaconfiguracióndelacarpetadedestinopara:FolderActionrecibelosarchivosycarpetasagregadosa
AgregueunaEjecucióndelscriptdeshellacción,mientrascambiaPasarentrada:deastdinacomoargumentos.Luegoreemplaceelcódigooriginalconelsiguientecódigodeejemplo,mientrasmodificaelvalordecopy
ymovef
variablesparaquecontengaelPOSIXpathname
delascarpetasdedestinoalasquesecopiaráelarchivoprimero,yposteriormentesemoverádela"Carpeta activa" en la que se colocó.
copyf="/Path/To/Copy To Folder"
movef="/Path/To/Move To Folder"
for f in "$@"; do
cp -a "$f" "$copyf"
mv "$f" "movef"
done