Eu não usaria links físicos. Alguns editores quebram hard links quando salvam arquivos, outros não, e alguns podem ser configurados. No entanto, a preservação de links físicos ao salvar um arquivo implica que o arquivo está gravado no lugar, o que significa que, se o sistema travar durante a gravação, você ficará com um arquivo incompleto. É por isso que o save-to-new-file-and-move-in-place é preferível - mas isso quebra os hard links.
Em particular, a maioria dos softwares de controle de versão interrompe os links físicos. Tão hard links estão fora.
Uma floresta de links simbólicos não tem esse problema. Você precisa garantir que aponta seu editor para a cópia principal ou que o editor segue links simbólicos.
Você pode criar a floresta de links simbólicos com cp -as
. No entanto, se você criar novos arquivos, cp -as
será inconveniente para criar os links simbólicos correspondentes (ele fará o trabalho, mas o afogará em reclamações de que o destino já existe). Você pode usar um loop de shell simples.
for env in environement1 environment2 environment3; do
cd "../$env"
find ../src \
-type d -exec mkdir {} + \
-o -exec sh -c 'ln -s "$@" .' _ {} +
done