O truque é verificar o conteúdo da pasta em determinados intervalos e comparar a lista de arquivos com a última verificação. Como apenas novos arquivos precisam ser convertidos, os arquivos que já estavam na lista na última vez podem ser ignorados.
É isso que o script abaixo faz. É em python, mas o princípio é o mesmo em qualquer idioma.
O que faz:
Quando o script é iniciado, ele cria uma lista de arquivos no diretório.
Então, em um loop, a cada 5 segundos:
- verifica arquivos adicionais
- se arquivos adicionais forem encontrados, eles serão convertidos, os arquivos que já estavam lá serão ignorados.
- define a última lista de arquivos verificados como a "nova" lista inicial de arquivos.
#!/usr/bin/env python3
import subprocess
import time
directory = "/path/to/your/files"
def current_files():
read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
return [item for item in read.split("\n")]
initial_files = current_files()
while True:
update = current_files()
for item in update:
if (item in initial_files, item.startswith("frm")) == (False, True):
subprocess.call(["/bin/bash", "-c", "dos2unix", directory+"/"+item])
initial_files = update
time.sleep(5)
Copie o script em um arquivo vazio, defina o caminho para sua pasta, salve-o como convert.py
e execute o script em segundo plano pelo comando:
python3 /path/to/convert.py