Há uma longa história aqui quando se trata do caso geral de "arquivos de ponto", mas os diretórios $HOME/.confige $HOME/.localque você mencionou especificamente têm uma origem na Especificação de diretório base do XDG .
$HOME/.configé para onde os arquivos de configuração por usuário vão, se não houver $XDG_CONFIG_HOME.
$HOME/.cacheé para onde os arquivos de cache por usuário vão, se não houver $XDG_CACHE_HOME.
$HOME/.local/shareé para onde os arquivos de dados por usuário vão, se não houver $XDG_DATA_HOME.
Os usuários do Windows podem reconhecer isso como um paralelo ao que a Microsoft possui no Windows NT desde a versão 4 (embora os nomes tenham sido alterados na versão 6.0):
%USERPROFILE%/AppData/Local/aka %LOCALAPPDATA%- para onde vão os arquivos de dados por usuário desta máquina
%USERPROFILE%/AppData/Roaming/aka %APPDATA%- para onde os arquivos de dados por usuário que um usuário móvel pode acessar de várias máquinas
%USERPROFILE%/AppData/Local/Temp/aka %TEMP%- para onde vão os arquivos temporários por usuário
A idéia é que por usuário arquivos podem ser (entre um monte de outras coisas) arquivos de dados de aplicativos (específico da máquina ou em roaming), arquivos de configuração do aplicativo , arquivos em cache e arquivos temporários , e aplicações colocá-los em sub-árvores enraizadas nestes diretórios particulares.
(MacOS tem um sistema semelhante, onde os usuários obtêm indivíduo por usuário "usuários locais" sub-árvores sob /var/folderscom Ce Tsubdiretórios para cache e arquivos temporários.)
Como o pessoal do Arch observa, existem alguns arquivos e diretórios "ponto" que se tornaram comumente usados por vários aplicativos e é improvável que concordem com o XDG em um futuro próximo, como $HOME/.sshe $HOME/.netrc.
Leitura adicional