Como escrever um script que é executado sempre que um novo arquivo é adicionado a um diretório específico?

2

Eu nunca escrevi um script para o OS X, e realmente não sei qual ferramenta de script eu usarei para essa tarefa.

Aqui está um pseudo código para o script que eu quero construir:

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

Eu não quero que alguém codifique isso para mim, eu quero saber qual ferramenta (linguagem talvez) devo usar para escrever este script, e como fazer o OS X executá-lo sempre que o evento ocorrer.

Eu não sei o que marcar isso. Por favor contribua. Por favor, redirecione se este não for o fórum certo para esta questão.

reaffer
fonte
Eu diria que tente usar o AppleScript primeiro
user2277872
1
Ações de pasta?
perhapsmaybeharry

Respostas:

1

Muito simples usando o Automator & amp; Ações de pasta.

  • Faça uma nova ação de pasta e defina a origem como Pasta A
  • selecione uma ação do Finder na coluna da esquerda,
  • arraste 'Copy Finder Items' do centro para a direita
  • defina o destino para a pasta B.
  • Dê um nome e & amp; Salve .

enter image description here

Toda vez que qualquer coisa é adicionada a A, ela copia automaticamente para B.

Tetsujin
fonte
E se você quiser fazer algo mais complicado, o Automator tem uma ação 'Run Shell Script' que você pode usar com várias variações de script de shell, Ruby, Perl e Python. Se você seguir esse caminho, eu advogaria a idéia de ficar com sh / bash ou qualquer idioma com o qual você se sentir mais confortável.
Geoff Nixon
Eu descobri que há um bug nessa ação simples do Automator, pois se um arquivo já existe em A e você responde a Replace, ele não é copiado para B. Isso foi testado no OS X 10.8.5 e pode não ser um problema em outras versões do OS X.
user3439894
0

Eu só posso pensar em duas maneiras que exigem pacotes de terceiros (gratuitos):

1º Um pacote chamado cão de guarda Por monitorar eventos do sistema de arquivos e ações de acionamento. Na verdade, é um pacote python, mas também inclui um utilitário de shell para que você possa criar scripts a partir do terminal sem realmente codificar.

2º use um pequeno programa chamado fswatch que usa a API de eventos de sistema de arquivos do Mac OS para monitorar seus arquivos e pastas e pode acionar scripts.

Ambos exigem que você instale o pacote / programa e parece fazer o que você precisa. Espero que isso, pelo menos, aponta na direção certa.

JavoSN
fonte