Fundo
A convenção Unix e o padrão Linux Filesystem Hierarchy definem vários caminhos sob os quais os processos procuram por certas informações, ou usam para escrever certas informações. Quando alguém precisa configurar um ambiente específico do usuário, como um usuário não root - a maioria desses locais são inacessíveis, ou legíveis, mas sem a capacidade de escrever em arquivos ou criar novos. Então, alguém deve usar alternativas.
Em princípio, poderíamos tratar o diretório inicial de um usuário como outro /
; no entanto, isso não é uma prática comum.
Também existe o costume de criar um $HOME/.my_app
diretório. A maioria dos aplicativos que os criam os usam para configuração, mas alguns também para outros tipos de dados (Eclipse, Firefox, Thunderbird vêm à mente como esconder montes de dados ali). Mas isso significa que podemos ter dezenas, se não centenas, .something
no diretório home, o que é bastante indecoroso.
Por fim, também se tornou comum para alguns aplicativos gravar em $HOME/.local
e $HOME/.config
, o que não "suja" o diretório inicial em si: $HOME/.config
pode ser visto como um equivalente de /etc
e $HOME.local
de /usr
; portanto, bastante útil, mas - não abrange /var
e seus subdiretórios.
Pergunta atual
Onde, sob o diretório home de um usuário, nós, ou um programa que escrevemos, deveríamos armazenar os dados que um programa de nível de sistema armazenaria em /var
, ou subdiretórios de /var
? Ou seja: "arquivos cujo conteúdo deve mudar continuamente durante a operação normal do sistema, como logs [e] arquivos de spool..." (para citar o FHS), bem como cache, bancos de dados não estáticos, arquivos de bloqueio, arquivos de execução e arquivos de log?