Você poderia escrever um script que fica atrás de um pipe nomeado e despejar o conteúdo de staticEntries.dic e dynamicEntries.dic sempre que for aberto e lido. Anote o tubo que está sendo fechado e termine a saída até que seja aberto novamente.
Mas você teria que deixar esse script em execução em segundo plano e lembrar de iniciá-lo novamente após o logout / login ou a reinicialização.
Mais importante, não é uma tarefa de programação de shell do novato.
Às vezes (normalmente), a solução mais simples é a melhor.
É muito mais simples criar um Makefile que defina mydict.dic como dependente dos outros dois arquivos e lembrar de executar o make para atualizá-lo quando você precisar dele. ou apenas um shell script - a vantagem de um Makefile é que você também pode executá-lo a partir do cron e ele só atualizaria o arquivo de destino (mydict.dic) se qualquer um dos arquivos de origem tivesse mudado.
por exemplo:
#!/usr/bin/make -f
all: mydict.dic
mydict.dic: staticEntries.dic dynamicEntries.dic
cat staticEntries.dic dynamicEntries.dic > mydict.dic.tmp
mv mydict.dic.tmp mydict.dic
as linhas com cat
e mv
começam com uma tabulação, não com espaços.
O arquivo concatenado é criado como um arquivo temporário primeiro e depois movido para o lugar, portanto, a substituição do antigo pelo novo é uma operação atômica. isso é feito para que, sempre que você usar o arquivo, você tenha a versão antiga completa ou a nova versão completa, mas nunca uma versão parcial do novo.
se qualquer um dos arquivos .dic de origem estiver em um diretório diferente, você precisará especificar os nomes completos dos arquivos para os arquivos.