Várias das suas ideias não funcionam.
- Cron funciona apenas no intervalo de minutos.
- Tornar os arquivos somente para leitura não impede a exclusão.
- Tornar o diretório somente leitura impede a exclusão, mas também a criação.
- Por outro lado, nenhum tamanho de arquivo excede os recursos
cp
.
A melhor solução é encontrar uma maneira de desativar a exclusão dos arquivos temporários.
Se isso não funcionar, a melhor maneira é não copiar, mas vincular os arquivos. Se você souber o diretório onde os arquivos serão criados, use isso em um segundo shell:
while true; do
ln sourcedir/* targetdir &> /dev/null
done
Você tem que terminar isso depois de terminar. sourcedir
e targetdir
devem estar no mesmo sistema de arquivos. Isso criará um link físico de cada arquivo. Quando ele é executado novamente, o destino existe, portanto, ele exibiria uma mensagem de erro, portanto, o redirecionamento para /dev/null
. A menos que os arquivos na origem sejam removidos muito rapidamente, você deve ter todos os seus arquivos no diretório de destino.
Editar
Para um número limitado de diretórios aninhados, use
ln sourcedir/* sourcedir/*/* sourcedir/*/*/* targetdir &> /dev/null
Para um nível arbitrário de aninhamento, use find
find sourcedir -type f -exec ln --target-directory targetdir {} +