¿Cómo escribir un script que se ejecuta cada vez que se agrega un nuevo archivo a un directorio específico?

2

Nunca he escrito un script para OS X, y realmente no sé qué herramienta de script usaré para esta tarea.

Aquí hay un pseudo código para el script que quiero construir:

whenever a new file X is added to the directory D do:
copy X 
paste X to the directory B

No quiero que alguien codifique esto por mí, quiero saber qué herramienta (lenguaje quizás) debería usar para escribir este script, y cómo hacer que OS X lo ejecute siempre que ocurra el evento.

No sé qué etiquetar esto. Por favor contribuya. Redirija si este no es el foro adecuado para esta pregunta.

reaffer
fuente
Yo diría que intente usar AppleScript primero
user2277872
1
Acciones de la carpeta?
maybemaybeharry

Respuestas:

1

Muy simple usando Automator & Folder Actions.

  • Realice una nueva acción de carpeta, luego configure la fuente en la carpeta A
  • seleccione una acción del Finder de la columna izquierda,
  • arrastre 'Copiar elementos del buscador' desde el centro hacia la derecha
  • establecer el destino en la carpeta B.
  • Dale un nombre y ahorra.

ingrese la descripción de la imagen aquí

Cada vez que se agrega algo a A, se copiará automáticamente en B.

Tetsujin
fuente
Y si desea hacer algo más complicado, Automator tiene una acción 'Ejecutar script de shell' que puede usar con una serie de variaciones de script de shell, Ruby, Perl y Python. Si sigue esta ruta, recomendaría seguir con sh / bash o cualquier idioma con el que se sienta más cómodo.
Geoff Nixon
Descubrí que hay un error en esta simple acción de Automator en que si un archivo ya existe en A y usted responde Reemplazar, no se copia en B. Esto se probó en OS X 10.8.5 y podría no ser un problema en otras versiones de OS X.
user3439894
0

Solo puedo pensar en dos formas que requieren paquetes de terceros (gratuitos):

1er. Un paquete llamado watchdog para monitorear eventos del sistema de archivos y acciones desencadenantes. En realidad es un paquete de Python, pero también incluye una utilidad de shell para que pueda crear scripts desde el terminal sin codificar.

2do. use un pequeño programa llamado fswatch que usa la API de eventos del sistema de archivos de Mac OS para monitorear sus archivos y carpetas, y puede activar scripts.

Ambos requieren que instales el paquete / programa, y ​​parecen hacer lo que requieres. Espero que esto al menos te señale en la dirección correcta.

JavoSN
fuente