Com base nos comentários da minha outra resposta e da sua pergunta, parece que o que você realmente está procurando é uma maneira de rastrear alterações em um conjunto de arquivos. Isso é comumente conhecido como controle de versão (ou revisão). Um mecanismo comum para isso que geralmente é instalado em um sistema é git
.
Para implementar isso, escolha um local para armazenar o que chamaremos de 'repositório', que armazenará uma cópia dos arquivos e rastreará todas as alterações feitas nela. Chamaremos esse local de /path/to/repository
. Crie esse diretório e execute o comando git init
. Isso irá configurar o repositório. Copie os arquivos para o diretório e agora vamos "confirmar" o estado atual no repositório:
git add *
git commit -m "Initial commit of files"
Em seguida, você pode simplesmente assistir ao local de entrega e atualizar o repositório conforme necessário:
#!/bin/bash
repo='/path/to/repository'
dropbox='/path/to/delivery/'
cd $repo
for file in *; do
if ! diff "${repo}/$file" "${dropbox}/$file"; then
cp -p "${dropbox}/$file" ${repo}/
git add "$file"
fi
done
git commit -m "Update for $(date)"
Este é um script rápido e sujo que não manipula arquivos com espaços em seus nomes, ou arquivos sendo adicionados ou removidos do feed particularmente bem, mas é um lugar para começar.