В моем домашнем каталоге есть несколько скрытых файлов конфигурации:
- некоторые из них находятся в
~/
(например~/.cinnamon
) - некоторые из них находятся в
~/.config/
(например~/.config/cinnamon-session
) - некоторые из них находятся в
~/.local/share/
(например~/.local/share/cinnamon-session
)
Какова логика размещения файлов конфигурации дома?
а) В чем разница между скрытыми файлами в этих трех местах?
б) Что именно означает «локальный» в данном контексте, в сравнении с конфигурационным и домашним?
в) Есть ли в домашнем каталоге другие важные общие каталоги конфигурации, используемые несколькими приложениями?
Debian 8.6 Cinnamon 2.2.16
решение1
Здесь есть долгая история, когда речь заходит об общем случае «файлов с точкой», но каталоги $HOME/.config
и $HOME/.local
, которые вы конкретно упомянули, имеют происхождение изСпецификация базового каталога XDG.
$HOME/.config
где хранятся файлы конфигурации для каждого пользователя, если нет$XDG_CONFIG_HOME
.$HOME/.cache
куда попадают файлы кэша для каждого пользователя, если нет$XDG_CACHE_HOME
.$HOME/.local/share
куда помещаются файлы данных каждого пользователя, если нет$XDG_DATA_HOME
.
Пользователи Windows могут увидеть в этом параллель с тем, что Microsoft использовала в Windows NT, начиная с версии 4 (хотя названия изменились в версии 6.0):
%USERPROFILE%/AppData/Local/
также известный как%LOCALAPPDATA%
— где хранятся файлы данных для каждого пользователя на этой машине%USERPROFILE%/AppData/Roaming/
также известный как%APPDATA%
— куда помещаются файлы данных для каждого пользователя, к которым перемещаемый пользователь может получить доступ с нескольких машин%USERPROFILE%/AppData/Local/Temp/
также известный как%TEMP%
— место, где хранятся временные файлы пользователя
Идея состоит в том, что файлы для каждого пользователя могут быть (помимо всего прочего)файлы данных приложений(машинно-зависимый или перемещаемый),файлы конфигурации приложения,кэшированные файлы, ивременные файлы, и приложения помещают их в поддеревья, корнем которых являются эти конкретные каталоги.
(В MacOS есть похожая система, в которой пользователи получают индивидуальные «локальные» поддеревья для каждого пользователя в подкаталогах /var/folders
и C
подкаталогах T
для кэша и временных файлов.)
Как отмечают специалисты Arch, существуют некоторые файлы и каталоги с точками, которые стали широко использоваться несколькими приложениями и вряд ли будут совместимы с XDG в обозримом будущем, например, $HOME/.ssh
и $HOME/.netrc
.
дальнейшее чтение
- Уолдо Бастиан, Райан Лорти и Леннарт Поттеринг (2010). Спецификация базового каталога XDG. Freedesktop.org.
- Крис Джексон (05.02.2008).Где следует записывать данные программы вместо файлов программы?. Оригинальный рецепт Awesomsauce. Microsoft.
- Руководство по развертыванию управления перемещаемыми данными пользователя. Техническая библиотека Windows Vista. Microsoft TechNet.
- https://askubuntu.com/questions/102046/
- https://unix.stackexchange.com/a/555214/5132
- https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
- Лионель Дрико (11.03.2009). Измените свое приложение для использования папок XDG.