Is there official documentation on directories like ~/.config and ~/.cache?What does the period (.) mean at the start of a filename in a terminal command?Files in /home deletedCache Memory and fglrx driver slows computerIs there a difference between SWAP and Cache memory?Moving Configuration Directories and Files to a Sub-directory of Home DirectoryPurpose of '~/.cache' directory and when is it safe to delete?Downloading and playing audio from cacheMerge Chromium and Chrome cache dirsIs there a config file that controls the microphone?Copy firefox/thunderbird config directories from Ubuntu 12.04 to Xubuntu 16.04Are there special functionalities to Ubuntu default directories in home?

Mathematically modelling RC circuit with a linear input

Explain why a line can never intersect a plane in exactly two points.

Why don't we have a weaning party like Avraham did?

What are the pros and cons for the two possible "gear directions" when parking the car on a hill?

What is the "ls" directory in my home directory?

Should I include an appendix for inessential, yet related worldbuilding to my story?

Dates on degrees don’t make sense – will people care?

How did Gollum enter Moria?

Draw a symmetric alien head

How long did the SR-71 take to get to cruising altitude?

How could empty set be unique if it could be vacuously false

I just entered the USA without passport control at Atlanta airport

Why don't countries like Japan just print more money?

Is the continuity test limit resistance of a multimeter standard?

Print one file per line using echo

What is the highest voltage from the power supply a Raspberry Pi 3 B can handle without getting damaged?

Intuition for the role of diffeomorphisms

Subtract the Folded Matrix

Explicit song lyrics checker

"Correct me if I'm wrong"

Why is it easier to balance a non-moving bike standing up than sitting down?

Boss wants someone else to lead a project based on the idea I presented to him

How do I professionally let my manager know I'll quit over an issue?

Why isn't my calculation that we should be able to see the sun well beyond the observable universe valid?



Is there official documentation on directories like ~/.config and ~/.cache?


What does the period (.) mean at the start of a filename in a terminal command?Files in /home deletedCache Memory and fglrx driver slows computerIs there a difference between SWAP and Cache memory?Moving Configuration Directories and Files to a Sub-directory of Home DirectoryPurpose of '~/.cache' directory and when is it safe to delete?Downloading and playing audio from cacheMerge Chromium and Chrome cache dirsIs there a config file that controls the microphone?Copy firefox/thunderbird config directories from Ubuntu 12.04 to Xubuntu 16.04Are there special functionalities to Ubuntu default directories in home?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








6















I've see these directories being used by many applications and am now considering using them for my app. How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?



I've been Googling and searching for something official from Ubuntu but to no avail, maybe someone else knows the proper search terms or location of this documentation. Is this something I should just accept as an un-stated standard practice location?










share|improve this question







New contributor



Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.



















  • "maybe someone else knows the proper search terms": I'm not sure of official documentation for their use but these are considered dotfiles, more specifically dotfolders in those examples. They are hidden by default and are commonly used for saving user preferences (~/.config) and other "support" files like cache (~/.cache).

    – Nmath
    11 hours ago











  • @Nmath They're not "hidden" really. It's just a "traditional" Unix design ( or oopsie ) where ls would ignore dot files and other applications sort of adopted it, but they're in no way hidden, and shouldn't be used as security feature in any way. Rob Pike, one of the Unix wizzards, has also clarified that originally the purpose was to hide . and .. directories from the output, but that was implemented in a wrong fashion. Read about it here: askubuntu.com/a/1073810/295286

    – Sergiy Kolodyazhnyy
    11 hours ago






  • 1





    "official from Ubuntu" wrong place. It is defined by the freedesktop organization so -desktop- dependent. Not just Ubuntu. Oh and these are GUIDELINES.

    – Rinzwind
    11 hours ago












  • @SergiyKolodyazhnyy it is interesting to discuss the history of how dotfiles came to be, but in practice dotfiles/dotfolders are hidden (not visible) by default by file managers and bash commands like dir. In that way, yes they are absolutely "hidden". Hiding files this way serves a good purpose to prevent them from being accidentally altered/deleted by end user -- that's why they are still used so ubiquitously. I agree that dotfiles should not be used for security, in the sense that they are not impossible to find/read/alter.

    – Nmath
    9 hours ago











  • @Nmath Well, even accidental deletion can happen with these. Consider the find command or Python for example - these don't ignore dotfiles by default. I agree that it may be convenient to remove them from listing to the end-user, but that's about it.

    – Sergiy Kolodyazhnyy
    9 hours ago

















6















I've see these directories being used by many applications and am now considering using them for my app. How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?



I've been Googling and searching for something official from Ubuntu but to no avail, maybe someone else knows the proper search terms or location of this documentation. Is this something I should just accept as an un-stated standard practice location?










share|improve this question







New contributor



Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.



















  • "maybe someone else knows the proper search terms": I'm not sure of official documentation for their use but these are considered dotfiles, more specifically dotfolders in those examples. They are hidden by default and are commonly used for saving user preferences (~/.config) and other "support" files like cache (~/.cache).

    – Nmath
    11 hours ago











  • @Nmath They're not "hidden" really. It's just a "traditional" Unix design ( or oopsie ) where ls would ignore dot files and other applications sort of adopted it, but they're in no way hidden, and shouldn't be used as security feature in any way. Rob Pike, one of the Unix wizzards, has also clarified that originally the purpose was to hide . and .. directories from the output, but that was implemented in a wrong fashion. Read about it here: askubuntu.com/a/1073810/295286

    – Sergiy Kolodyazhnyy
    11 hours ago






  • 1





    "official from Ubuntu" wrong place. It is defined by the freedesktop organization so -desktop- dependent. Not just Ubuntu. Oh and these are GUIDELINES.

    – Rinzwind
    11 hours ago












  • @SergiyKolodyazhnyy it is interesting to discuss the history of how dotfiles came to be, but in practice dotfiles/dotfolders are hidden (not visible) by default by file managers and bash commands like dir. In that way, yes they are absolutely "hidden". Hiding files this way serves a good purpose to prevent them from being accidentally altered/deleted by end user -- that's why they are still used so ubiquitously. I agree that dotfiles should not be used for security, in the sense that they are not impossible to find/read/alter.

    – Nmath
    9 hours ago











  • @Nmath Well, even accidental deletion can happen with these. Consider the find command or Python for example - these don't ignore dotfiles by default. I agree that it may be convenient to remove them from listing to the end-user, but that's about it.

    – Sergiy Kolodyazhnyy
    9 hours ago













6












6








6








I've see these directories being used by many applications and am now considering using them for my app. How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?



I've been Googling and searching for something official from Ubuntu but to no avail, maybe someone else knows the proper search terms or location of this documentation. Is this something I should just accept as an un-stated standard practice location?










share|improve this question







New contributor



Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I've see these directories being used by many applications and am now considering using them for my app. How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?



I've been Googling and searching for something official from Ubuntu but to no avail, maybe someone else knows the proper search terms or location of this documentation. Is this something I should just accept as an un-stated standard practice location?







configuration home-directory cache






share|improve this question







New contributor



Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










share|improve this question







New contributor



Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








share|improve this question




share|improve this question






New contributor



Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








asked 11 hours ago









Danny ADanny A

334




334




New contributor



Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




New contributor




Danny A is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.














  • "maybe someone else knows the proper search terms": I'm not sure of official documentation for their use but these are considered dotfiles, more specifically dotfolders in those examples. They are hidden by default and are commonly used for saving user preferences (~/.config) and other "support" files like cache (~/.cache).

    – Nmath
    11 hours ago











  • @Nmath They're not "hidden" really. It's just a "traditional" Unix design ( or oopsie ) where ls would ignore dot files and other applications sort of adopted it, but they're in no way hidden, and shouldn't be used as security feature in any way. Rob Pike, one of the Unix wizzards, has also clarified that originally the purpose was to hide . and .. directories from the output, but that was implemented in a wrong fashion. Read about it here: askubuntu.com/a/1073810/295286

    – Sergiy Kolodyazhnyy
    11 hours ago






  • 1





    "official from Ubuntu" wrong place. It is defined by the freedesktop organization so -desktop- dependent. Not just Ubuntu. Oh and these are GUIDELINES.

    – Rinzwind
    11 hours ago












  • @SergiyKolodyazhnyy it is interesting to discuss the history of how dotfiles came to be, but in practice dotfiles/dotfolders are hidden (not visible) by default by file managers and bash commands like dir. In that way, yes they are absolutely "hidden". Hiding files this way serves a good purpose to prevent them from being accidentally altered/deleted by end user -- that's why they are still used so ubiquitously. I agree that dotfiles should not be used for security, in the sense that they are not impossible to find/read/alter.

    – Nmath
    9 hours ago











  • @Nmath Well, even accidental deletion can happen with these. Consider the find command or Python for example - these don't ignore dotfiles by default. I agree that it may be convenient to remove them from listing to the end-user, but that's about it.

    – Sergiy Kolodyazhnyy
    9 hours ago

















  • "maybe someone else knows the proper search terms": I'm not sure of official documentation for their use but these are considered dotfiles, more specifically dotfolders in those examples. They are hidden by default and are commonly used for saving user preferences (~/.config) and other "support" files like cache (~/.cache).

    – Nmath
    11 hours ago











  • @Nmath They're not "hidden" really. It's just a "traditional" Unix design ( or oopsie ) where ls would ignore dot files and other applications sort of adopted it, but they're in no way hidden, and shouldn't be used as security feature in any way. Rob Pike, one of the Unix wizzards, has also clarified that originally the purpose was to hide . and .. directories from the output, but that was implemented in a wrong fashion. Read about it here: askubuntu.com/a/1073810/295286

    – Sergiy Kolodyazhnyy
    11 hours ago






  • 1





    "official from Ubuntu" wrong place. It is defined by the freedesktop organization so -desktop- dependent. Not just Ubuntu. Oh and these are GUIDELINES.

    – Rinzwind
    11 hours ago












  • @SergiyKolodyazhnyy it is interesting to discuss the history of how dotfiles came to be, but in practice dotfiles/dotfolders are hidden (not visible) by default by file managers and bash commands like dir. In that way, yes they are absolutely "hidden". Hiding files this way serves a good purpose to prevent them from being accidentally altered/deleted by end user -- that's why they are still used so ubiquitously. I agree that dotfiles should not be used for security, in the sense that they are not impossible to find/read/alter.

    – Nmath
    9 hours ago











  • @Nmath Well, even accidental deletion can happen with these. Consider the find command or Python for example - these don't ignore dotfiles by default. I agree that it may be convenient to remove them from listing to the end-user, but that's about it.

    – Sergiy Kolodyazhnyy
    9 hours ago
















"maybe someone else knows the proper search terms": I'm not sure of official documentation for their use but these are considered dotfiles, more specifically dotfolders in those examples. They are hidden by default and are commonly used for saving user preferences (~/.config) and other "support" files like cache (~/.cache).

– Nmath
11 hours ago





"maybe someone else knows the proper search terms": I'm not sure of official documentation for their use but these are considered dotfiles, more specifically dotfolders in those examples. They are hidden by default and are commonly used for saving user preferences (~/.config) and other "support" files like cache (~/.cache).

– Nmath
11 hours ago













@Nmath They're not "hidden" really. It's just a "traditional" Unix design ( or oopsie ) where ls would ignore dot files and other applications sort of adopted it, but they're in no way hidden, and shouldn't be used as security feature in any way. Rob Pike, one of the Unix wizzards, has also clarified that originally the purpose was to hide . and .. directories from the output, but that was implemented in a wrong fashion. Read about it here: askubuntu.com/a/1073810/295286

– Sergiy Kolodyazhnyy
11 hours ago





@Nmath They're not "hidden" really. It's just a "traditional" Unix design ( or oopsie ) where ls would ignore dot files and other applications sort of adopted it, but they're in no way hidden, and shouldn't be used as security feature in any way. Rob Pike, one of the Unix wizzards, has also clarified that originally the purpose was to hide . and .. directories from the output, but that was implemented in a wrong fashion. Read about it here: askubuntu.com/a/1073810/295286

– Sergiy Kolodyazhnyy
11 hours ago




1




1





"official from Ubuntu" wrong place. It is defined by the freedesktop organization so -desktop- dependent. Not just Ubuntu. Oh and these are GUIDELINES.

– Rinzwind
11 hours ago






"official from Ubuntu" wrong place. It is defined by the freedesktop organization so -desktop- dependent. Not just Ubuntu. Oh and these are GUIDELINES.

– Rinzwind
11 hours ago














@SergiyKolodyazhnyy it is interesting to discuss the history of how dotfiles came to be, but in practice dotfiles/dotfolders are hidden (not visible) by default by file managers and bash commands like dir. In that way, yes they are absolutely "hidden". Hiding files this way serves a good purpose to prevent them from being accidentally altered/deleted by end user -- that's why they are still used so ubiquitously. I agree that dotfiles should not be used for security, in the sense that they are not impossible to find/read/alter.

– Nmath
9 hours ago





@SergiyKolodyazhnyy it is interesting to discuss the history of how dotfiles came to be, but in practice dotfiles/dotfolders are hidden (not visible) by default by file managers and bash commands like dir. In that way, yes they are absolutely "hidden". Hiding files this way serves a good purpose to prevent them from being accidentally altered/deleted by end user -- that's why they are still used so ubiquitously. I agree that dotfiles should not be used for security, in the sense that they are not impossible to find/read/alter.

– Nmath
9 hours ago













@Nmath Well, even accidental deletion can happen with these. Consider the find command or Python for example - these don't ignore dotfiles by default. I agree that it may be convenient to remove them from listing to the end-user, but that's about it.

– Sergiy Kolodyazhnyy
9 hours ago





@Nmath Well, even accidental deletion can happen with these. Consider the find command or Python for example - these don't ignore dotfiles by default. I agree that it may be convenient to remove them from listing to the end-user, but that's about it.

– Sergiy Kolodyazhnyy
9 hours ago










1 Answer
1






active

oldest

votes


















6














Yes, there is a standard: these are specified by freedesktop.org and are part of XDG Base Directory Specifications.



config-spec outlines just basic requirements, but the details are in the Base Directory Specifications. The ~/.config and ~/.cache directories are default unless configured otherwise:




There is a set of preference ordered base directories relative to which configuration files should be searched. This set of directories is defined by the environment variable $XDG_CONFIG_DIRS.



There is a single base directory relative to which user-specific non-essential (cached) data should be written. This directory is defined by the environment variable $XDG_CACHE_HOME.



...



$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.



...



$XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.




You may notice these specifications mostly state where data should be stored, which environment variables used, and in what manner ( desktop-neutral, efficient, etc ), but most desktops are free in implementing the "how" part of it. The GNOME-based desktops will use gsettings where as KDE users can use the same via kwriteconfig, but they both will rely on ~/.config directory in the process




Question key points




How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?




These directories appear in official documentation and Filesystem Hierarchy Standard also mentions them. This is official documentation, hence the folders are officially supported.




Is this something I should just accept as an un-stated standard practice location?




Depends on the app you're creating. Is the app supposed to be configurable on per-user basis or work consistently through out the system ? FHS tells us that for system-wide stuff we should use /etc or /usr/local, but XDG directories should be used for user-specific configurations - ~/.cache and ~/.config. Of course, if application isn't dependent on user-specific settings, /var/cache can be used instead of per-user directory. Of course, you could always have single ~/.appname.conf file, a ~/.appname.db or ~/.appname/ directory to keep configurations and cache there, but that would be non-standard; not "bad" - just non-standard.



See also



  • Why do some applications use ~/.config/appname for their config data while others use ~/.appname?

  • Understanding home configuration file locations: ~/, ~/.config/ and ~/.local/share/

  • How did the ~/.local/bin thing start? How widespread is it?





share|improve this answer

























  • ehm did you post this before me? or during? >:)

    – Rinzwind
    11 hours ago











  • @Rinzwind Right before your answer :) Look at the time line askubuntu.com/posts/1151791/timeline

    – Sergiy Kolodyazhnyy
    10 hours ago











  • Ill let you have this one :=)

    – Rinzwind
    10 hours ago











  • Ah awesome, I should have dug deeper, thanks for the information.

    – Danny A
    10 hours ago











  • Which part of POSIX talks about directory usage?

    – chepner
    2 hours ago











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);






Danny A is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1151791%2fis-there-official-documentation-on-directories-like-config-and-cache%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









6














Yes, there is a standard: these are specified by freedesktop.org and are part of XDG Base Directory Specifications.



config-spec outlines just basic requirements, but the details are in the Base Directory Specifications. The ~/.config and ~/.cache directories are default unless configured otherwise:




There is a set of preference ordered base directories relative to which configuration files should be searched. This set of directories is defined by the environment variable $XDG_CONFIG_DIRS.



There is a single base directory relative to which user-specific non-essential (cached) data should be written. This directory is defined by the environment variable $XDG_CACHE_HOME.



...



$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.



...



$XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.




You may notice these specifications mostly state where data should be stored, which environment variables used, and in what manner ( desktop-neutral, efficient, etc ), but most desktops are free in implementing the "how" part of it. The GNOME-based desktops will use gsettings where as KDE users can use the same via kwriteconfig, but they both will rely on ~/.config directory in the process




Question key points




How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?




These directories appear in official documentation and Filesystem Hierarchy Standard also mentions them. This is official documentation, hence the folders are officially supported.




Is this something I should just accept as an un-stated standard practice location?




Depends on the app you're creating. Is the app supposed to be configurable on per-user basis or work consistently through out the system ? FHS tells us that for system-wide stuff we should use /etc or /usr/local, but XDG directories should be used for user-specific configurations - ~/.cache and ~/.config. Of course, if application isn't dependent on user-specific settings, /var/cache can be used instead of per-user directory. Of course, you could always have single ~/.appname.conf file, a ~/.appname.db or ~/.appname/ directory to keep configurations and cache there, but that would be non-standard; not "bad" - just non-standard.



See also



  • Why do some applications use ~/.config/appname for their config data while others use ~/.appname?

  • Understanding home configuration file locations: ~/, ~/.config/ and ~/.local/share/

  • How did the ~/.local/bin thing start? How widespread is it?





share|improve this answer

























  • ehm did you post this before me? or during? >:)

    – Rinzwind
    11 hours ago











  • @Rinzwind Right before your answer :) Look at the time line askubuntu.com/posts/1151791/timeline

    – Sergiy Kolodyazhnyy
    10 hours ago











  • Ill let you have this one :=)

    – Rinzwind
    10 hours ago











  • Ah awesome, I should have dug deeper, thanks for the information.

    – Danny A
    10 hours ago











  • Which part of POSIX talks about directory usage?

    – chepner
    2 hours ago















6














Yes, there is a standard: these are specified by freedesktop.org and are part of XDG Base Directory Specifications.



config-spec outlines just basic requirements, but the details are in the Base Directory Specifications. The ~/.config and ~/.cache directories are default unless configured otherwise:




There is a set of preference ordered base directories relative to which configuration files should be searched. This set of directories is defined by the environment variable $XDG_CONFIG_DIRS.



There is a single base directory relative to which user-specific non-essential (cached) data should be written. This directory is defined by the environment variable $XDG_CACHE_HOME.



...



$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.



...



$XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.




You may notice these specifications mostly state where data should be stored, which environment variables used, and in what manner ( desktop-neutral, efficient, etc ), but most desktops are free in implementing the "how" part of it. The GNOME-based desktops will use gsettings where as KDE users can use the same via kwriteconfig, but they both will rely on ~/.config directory in the process




Question key points




How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?




These directories appear in official documentation and Filesystem Hierarchy Standard also mentions them. This is official documentation, hence the folders are officially supported.




Is this something I should just accept as an un-stated standard practice location?




Depends on the app you're creating. Is the app supposed to be configurable on per-user basis or work consistently through out the system ? FHS tells us that for system-wide stuff we should use /etc or /usr/local, but XDG directories should be used for user-specific configurations - ~/.cache and ~/.config. Of course, if application isn't dependent on user-specific settings, /var/cache can be used instead of per-user directory. Of course, you could always have single ~/.appname.conf file, a ~/.appname.db or ~/.appname/ directory to keep configurations and cache there, but that would be non-standard; not "bad" - just non-standard.



See also



  • Why do some applications use ~/.config/appname for their config data while others use ~/.appname?

  • Understanding home configuration file locations: ~/, ~/.config/ and ~/.local/share/

  • How did the ~/.local/bin thing start? How widespread is it?





share|improve this answer

























  • ehm did you post this before me? or during? >:)

    – Rinzwind
    11 hours ago











  • @Rinzwind Right before your answer :) Look at the time line askubuntu.com/posts/1151791/timeline

    – Sergiy Kolodyazhnyy
    10 hours ago











  • Ill let you have this one :=)

    – Rinzwind
    10 hours ago











  • Ah awesome, I should have dug deeper, thanks for the information.

    – Danny A
    10 hours ago











  • Which part of POSIX talks about directory usage?

    – chepner
    2 hours ago













6












6








6







Yes, there is a standard: these are specified by freedesktop.org and are part of XDG Base Directory Specifications.



config-spec outlines just basic requirements, but the details are in the Base Directory Specifications. The ~/.config and ~/.cache directories are default unless configured otherwise:




There is a set of preference ordered base directories relative to which configuration files should be searched. This set of directories is defined by the environment variable $XDG_CONFIG_DIRS.



There is a single base directory relative to which user-specific non-essential (cached) data should be written. This directory is defined by the environment variable $XDG_CACHE_HOME.



...



$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.



...



$XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.




You may notice these specifications mostly state where data should be stored, which environment variables used, and in what manner ( desktop-neutral, efficient, etc ), but most desktops are free in implementing the "how" part of it. The GNOME-based desktops will use gsettings where as KDE users can use the same via kwriteconfig, but they both will rely on ~/.config directory in the process




Question key points




How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?




These directories appear in official documentation and Filesystem Hierarchy Standard also mentions them. This is official documentation, hence the folders are officially supported.




Is this something I should just accept as an un-stated standard practice location?




Depends on the app you're creating. Is the app supposed to be configurable on per-user basis or work consistently through out the system ? FHS tells us that for system-wide stuff we should use /etc or /usr/local, but XDG directories should be used for user-specific configurations - ~/.cache and ~/.config. Of course, if application isn't dependent on user-specific settings, /var/cache can be used instead of per-user directory. Of course, you could always have single ~/.appname.conf file, a ~/.appname.db or ~/.appname/ directory to keep configurations and cache there, but that would be non-standard; not "bad" - just non-standard.



See also



  • Why do some applications use ~/.config/appname for their config data while others use ~/.appname?

  • Understanding home configuration file locations: ~/, ~/.config/ and ~/.local/share/

  • How did the ~/.local/bin thing start? How widespread is it?





share|improve this answer















Yes, there is a standard: these are specified by freedesktop.org and are part of XDG Base Directory Specifications.



config-spec outlines just basic requirements, but the details are in the Base Directory Specifications. The ~/.config and ~/.cache directories are default unless configured otherwise:




There is a set of preference ordered base directories relative to which configuration files should be searched. This set of directories is defined by the environment variable $XDG_CONFIG_DIRS.



There is a single base directory relative to which user-specific non-essential (cached) data should be written. This directory is defined by the environment variable $XDG_CACHE_HOME.



...



$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.



...



$XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.




You may notice these specifications mostly state where data should be stored, which environment variables used, and in what manner ( desktop-neutral, efficient, etc ), but most desktops are free in implementing the "how" part of it. The GNOME-based desktops will use gsettings where as KDE users can use the same via kwriteconfig, but they both will rely on ~/.config directory in the process




Question key points




How do I know this is an officially supported folder and not just a flavor of the month location for a per-user cache/config?




These directories appear in official documentation and Filesystem Hierarchy Standard also mentions them. This is official documentation, hence the folders are officially supported.




Is this something I should just accept as an un-stated standard practice location?




Depends on the app you're creating. Is the app supposed to be configurable on per-user basis or work consistently through out the system ? FHS tells us that for system-wide stuff we should use /etc or /usr/local, but XDG directories should be used for user-specific configurations - ~/.cache and ~/.config. Of course, if application isn't dependent on user-specific settings, /var/cache can be used instead of per-user directory. Of course, you could always have single ~/.appname.conf file, a ~/.appname.db or ~/.appname/ directory to keep configurations and cache there, but that would be non-standard; not "bad" - just non-standard.



See also



  • Why do some applications use ~/.config/appname for their config data while others use ~/.appname?

  • Understanding home configuration file locations: ~/, ~/.config/ and ~/.local/share/

  • How did the ~/.local/bin thing start? How widespread is it?






share|improve this answer














share|improve this answer



share|improve this answer








edited 28 mins ago

























answered 11 hours ago









Sergiy KolodyazhnyySergiy Kolodyazhnyy

76.8k10161338




76.8k10161338












  • ehm did you post this before me? or during? >:)

    – Rinzwind
    11 hours ago











  • @Rinzwind Right before your answer :) Look at the time line askubuntu.com/posts/1151791/timeline

    – Sergiy Kolodyazhnyy
    10 hours ago











  • Ill let you have this one :=)

    – Rinzwind
    10 hours ago











  • Ah awesome, I should have dug deeper, thanks for the information.

    – Danny A
    10 hours ago











  • Which part of POSIX talks about directory usage?

    – chepner
    2 hours ago

















  • ehm did you post this before me? or during? >:)

    – Rinzwind
    11 hours ago











  • @Rinzwind Right before your answer :) Look at the time line askubuntu.com/posts/1151791/timeline

    – Sergiy Kolodyazhnyy
    10 hours ago











  • Ill let you have this one :=)

    – Rinzwind
    10 hours ago











  • Ah awesome, I should have dug deeper, thanks for the information.

    – Danny A
    10 hours ago











  • Which part of POSIX talks about directory usage?

    – chepner
    2 hours ago
















ehm did you post this before me? or during? >:)

– Rinzwind
11 hours ago





ehm did you post this before me? or during? >:)

– Rinzwind
11 hours ago













@Rinzwind Right before your answer :) Look at the time line askubuntu.com/posts/1151791/timeline

– Sergiy Kolodyazhnyy
10 hours ago





@Rinzwind Right before your answer :) Look at the time line askubuntu.com/posts/1151791/timeline

– Sergiy Kolodyazhnyy
10 hours ago













Ill let you have this one :=)

– Rinzwind
10 hours ago





Ill let you have this one :=)

– Rinzwind
10 hours ago













Ah awesome, I should have dug deeper, thanks for the information.

– Danny A
10 hours ago





Ah awesome, I should have dug deeper, thanks for the information.

– Danny A
10 hours ago













Which part of POSIX talks about directory usage?

– chepner
2 hours ago





Which part of POSIX talks about directory usage?

– chepner
2 hours ago










Danny A is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















Danny A is a new contributor. Be nice, and check out our Code of Conduct.












Danny A is a new contributor. Be nice, and check out our Code of Conduct.











Danny A is a new contributor. Be nice, and check out our Code of Conduct.














Thanks for contributing an answer to Ask Ubuntu!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1151791%2fis-there-official-documentation-on-directories-like-config-and-cache%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу

Israel Cuprins Etimologie | Istorie | Geografie | Politică | Demografie | Educație | Economie | Cultură | Note explicative | Note bibliografice | Bibliografie | Legături externe | Meniu de navigaresite web oficialfacebooktweeterGoogle+Instagramcanal YouTubeInstagramtextmodificaremodificarewww.technion.ac.ilnew.huji.ac.ilwww.weizmann.ac.ilwww1.biu.ac.ilenglish.tau.ac.ilwww.haifa.ac.ilin.bgu.ac.ilwww.openu.ac.ilwww.ariel.ac.ilCIA FactbookHarta Israelului"Negotiating Jerusalem," Palestine–Israel JournalThe Schizoid Nature of Modern Hebrew: A Slavic Language in Search of a Semitic Past„Arabic in Israel: an official language and a cultural bridge”„Latest Population Statistics for Israel”„Israel Population”„Tables”„Report for Selected Countries and Subjects”Human Development Report 2016: Human Development for Everyone„Distribution of family income - Gini index”The World FactbookJerusalem Law„Israel”„Israel”„Zionist Leaders: David Ben-Gurion 1886–1973”„The status of Jerusalem”„Analysis: Kadima's big plans”„Israel's Hard-Learned Lessons”„The Legacy of Undefined Borders, Tel Aviv Notes No. 40, 5 iunie 2002”„Israel Journal: A Land Without Borders”„Population”„Israel closes decade with population of 7.5 million”Time Series-DataBank„Selected Statistics on Jerusalem Day 2007 (Hebrew)”Golan belongs to Syria, Druze protestGlobal Survey 2006: Middle East Progress Amid Global Gains in FreedomWHO: Life expectancy in Israel among highest in the worldInternational Monetary Fund, World Economic Outlook Database, April 2011: Nominal GDP list of countries. Data for the year 2010.„Israel's accession to the OECD”Popular Opinion„On the Move”Hosea 12:5„Walking the Bible Timeline”„Palestine: History”„Return to Zion”An invention called 'the Jewish people' – Haaretz – Israel NewsoriginalJewish and Non-Jewish Population of Palestine-Israel (1517–2004)ImmigrationJewishvirtuallibrary.orgChapter One: The Heralders of Zionism„The birth of modern Israel: A scrap of paper that changed history”„League of Nations: The Mandate for Palestine, 24 iulie 1922”The Population of Palestine Prior to 1948originalBackground Paper No. 47 (ST/DPI/SER.A/47)History: Foreign DominationTwo Hundred and Seventh Plenary Meeting„Israel (Labor Zionism)”Population, by Religion and Population GroupThe Suez CrisisAdolf EichmannJustice Ministry Reply to Amnesty International Report„The Interregnum”Israel Ministry of Foreign Affairs – The Palestinian National Covenant- July 1968Research on terrorism: trends, achievements & failuresThe Routledge Atlas of the Arab–Israeli conflict: The Complete History of the Struggle and the Efforts to Resolve It"George Habash, Palestinian Terrorism Tactician, Dies at 82."„1973: Arab states attack Israeli forces”Agranat Commission„Has Israel Annexed East Jerusalem?”original„After 4 Years, Intifada Still Smolders”From the End of the Cold War to 2001originalThe Oslo Accords, 1993Israel-PLO Recognition – Exchange of Letters between PM Rabin and Chairman Arafat – Sept 9- 1993Foundation for Middle East PeaceSources of Population Growth: Total Israeli Population and Settler Population, 1991–2003original„Israel marks Rabin assassination”The Wye River Memorandumoriginal„West Bank barrier route disputed, Israeli missile kills 2”"Permanent Ceasefire to Be Based on Creation Of Buffer Zone Free of Armed Personnel Other than UN, Lebanese Forces"„Hezbollah kills 8 soldiers, kidnaps two in offensive on northern border”„Olmert confirms peace talks with Syria”„Battleground Gaza: Israeli ground forces invade the strip”„IDF begins Gaza troop withdrawal, hours after ending 3-week offensive”„THE LAND: Geography and Climate”„Area of districts, sub-districts, natural regions and lakes”„Israel - Geography”„Makhteshim Country”Israel and the Palestinian Territories„Makhtesh Ramon”„The Living Dead Sea”„Temperatures reach record high in Pakistan”„Climate Extremes In Israel”Israel in figures„Deuteronom”„JNF: 240 million trees planted since 1901”„Vegetation of Israel and Neighboring Countries”Environmental Law in Israel„Executive branch”„Israel's election process explained”„The Electoral System in Israel”„Constitution for Israel”„All 120 incoming Knesset members”„Statul ISRAEL”„The Judiciary: The Court System”„Israel's high court unique in region”„Israel and the International Criminal Court: A Legal Battlefield”„Localities and population, by population group, district, sub-district and natural region”„Israel: Districts, Major Cities, Urban Localities & Metropolitan Areas”„Israel-Egypt Relations: Background & Overview of Peace Treaty”„Solana to Haaretz: New Rules of War Needed for Age of Terror”„Israel's Announcement Regarding Settlements”„United Nations Security Council Resolution 497”„Security Council resolution 478 (1980) on the status of Jerusalem”„Arabs will ask U.N. to seek razing of Israeli wall”„Olmert: Willing to trade land for peace”„Mapping Peace between Syria and Israel”„Egypt: Israel must accept the land-for-peace formula”„Israel: Age structure from 2005 to 2015”„Global, regional, and national disability-adjusted life years (DALYs) for 306 diseases and injuries and healthy life expectancy (HALE) for 188 countries, 1990–2013: quantifying the epidemiological transition”10.1016/S0140-6736(15)61340-X„World Health Statistics 2014”„Life expectancy for Israeli men world's 4th highest”„Family Structure and Well-Being Across Israel's Diverse Population”„Fertility among Jewish and Muslim Women in Israel, by Level of Religiosity, 1979-2009”„Israel leaders in birth rate, but poverty major challenge”„Ethnic Groups”„Israel's population: Over 8.5 million”„Israel - Ethnic groups”„Jews, by country of origin and age”„Minority Communities in Israel: Background & Overview”„Israel”„Language in Israel”„Selected Data from the 2011 Social Survey on Mastery of the Hebrew Language and Usage of Languages”„Religions”„5 facts about Israeli Druze, a unique religious and ethnic group”„Israël”Israel Country Study Guide„Haredi city in Negev – blessing or curse?”„New town Harish harbors hopes of being more than another Pleasantville”„List of localities, in alphabetical order”„Muncitorii români, doriți în Israel”„Prietenia româno-israeliană la nevoie se cunoaște”„The Higher Education System in Israel”„Middle East”„Academic Ranking of World Universities 2016”„Israel”„Israel”„Jewish Nobel Prize Winners”„All Nobel Prizes in Literature”„All Nobel Peace Prizes”„All Prizes in Economic Sciences”„All Nobel Prizes in Chemistry”„List of Fields Medallists”„Sakharov Prize”„Țara care și-a sfidat "destinul" și se bate umăr la umăr cu Silicon Valley”„Apple's R&D center in Israel grew to about 800 employees”„Tim Cook: Apple's Herzliya R&D center second-largest in world”„Lecții de economie de la Israel”„Land use”Israel Investment and Business GuideA Country Study: IsraelCentral Bureau of StatisticsFlorin Diaconu, „Kadima: Flexibilitate și pragmatism, dar nici un compromis în chestiuni vitale", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 71-72Florin Diaconu, „Likud: Dreapta israeliană constant opusă retrocedării teritoriilor cureite prin luptă în 1967", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 73-74MassadaIsraelul a crescut in 50 de ani cât alte state intr-un mileniuIsrael Government PortalIsraelIsraelIsraelmmmmmXX451232cb118646298(data)4027808-634110000 0004 0372 0767n7900328503691455-bb46-37e3-91d2-cb064a35ffcc1003570400564274ge1294033523775214929302638955X146498911146498911

Smell Mother Skizze Discussion Tachometer Jar Alligator Star 끌다 자세 의문 과학적t Barbaric The round system critiques the connection. Definition: A wind instrument of music in use among the Spaniards Nasty Level 이상 분노 금년 월급 근교 Cloth Owner Permissible Shock Purring Parched Raise 오전 장면 햄 서투르다 The smash instructs the squeamish instrument. Large Nosy Nalpure Chalk Travel Crayon Bite your tongue The Hulk 신호 대사 사과하다 The work boosts the knowledgeable size. Steeplump Level Wooden Shake Teaching Jump 이제 복도 접다 공중전화 부지런하다 Rub Average Ruthless Busyglide Glost oven Didelphia Control A fly on the wall Jaws 지하철 거