Não sei se entendi sua pergunta, então vou reiterar o que entendo com minhas próprias palavras. Você tem um programa que procura seus arquivos de configuração no mesmo diretório em que o programa está localizado. Por exemplo, se você executar /home/human/ExecuteIt/FolderWithConfiaguration/Configuration1/executable
, ele procurará arquivos de configuração em /home/human/ExecuteIt/FolderWithConfiaguration/Configuration1
. Você deseja poder executar o programa com configurações diferentes, por exemplo /home/human/ExecuteIt/FolderWithConfiaguration/Configuration2
. E você não quer fazer várias cópias do programa.
Você pode criar links simbólicos para o executável em vários diretórios e criar links simbólicos para todos os arquivos comuns também . Por exemplo, suponha que o programa exija três arquivos: o executável executable
, um arquivo de dados data
e um arquivo de configuração config
. Você tem duas configurações diferentes, que você coloca em
/home/human/ExecuteIt/FolderWithConfiaguration/Configuration1/config
e /home/human/ExecuteIt/FolderWithConfiaguration/Configuration2/config
. Você tem uma cópia do executável e do arquivo de dados, ambos em /home/human/ExecuteIt/FolderWithConfiaguration/Configuration1/
. E você cria um link simbólico para /home/human/ExecuteIt/FolderWithConfiaguration/Configuration1/executable
no diretório /home/human/ExecuteIt/FolderWithConfiaguration/Configuration2/
, além de um link simbólico para /home/human/ExecuteIt/FolderWithConfiaguration/Configuration1/data
.
cd /home/human/ExecuteIt/FolderWithConfiaguration/Configuration2
ln -s ../Configuration1/executable ../Configuration1/data
Os links simbólicos dizem ao sistema para procurar o arquivo real em um lugar diferente. Eles não contêm dados, por isso, se você atualizar o executável ou os dados em Configuration1
, isso se aplica a todas as configurações; e há apenas uma cópia dos arquivos, portanto, as configurações adicionais exigem apenas o espaço em disco para o arquivo de configuração.
A maioria dos programas que se comportam dessa maneira considera a localização do executável ao procurar por arquivos de dados e de configuração. Se o seu seguir o link simbólico, esse método não funcionará. Em vez disso, você pode criar um link físico . Links físicos são múltiplos caminhos para os mesmos arquivos; Todos os hard links para um arquivo são equivalentes.
cd /home/human/ExecuteIt/FolderWithConfiaguration/Configuration2
ln ../Configuration1/executable ../Configuration1/data
Isso dificulta a atualização dos arquivos, já que você precisa atualizar o arquivo designado por todos os caminhos. Além disso, todos os hard links para o mesmo arquivo precisam estar no mesmo sistema de arquivos.