Nouvelles applications
Suivez généralement la spécification de répertoire de base XDG ~/.config/yourapp/*
peut être INF, JSON, YML ou n'importe quel format flotte votre bateau, et n'importe quels fichiers... yourapp
doit correspondre à votre nom d'exécutable ou avoir un espace de noms avec votre organisation/entreprise/nom d'utilisateur/handle à ~/.config/yourorg/yourapp/*
Applications plus anciennes
Configuration par utilisateur, généralement directement dans votre répertoire personnel...
~/.yourapp
fichier pour un seul fichier~/.yourapp/
pour plusieurs fichiers + données généralement dans ~/.yourapp/config
Les configurations globales sont généralement en /etc/appname
fichier ou /etc/appname/
répertoire.
Données globales de l'application :/var/lib/yourapp/
Données de cache :/var/cache/
Données de journal :/var/log/yourapp/
Quelques informations supplémentaires de tutorialhelpdesk.com
La structure des répertoires de Linux/autres systèmes de type Unix et les détails des répertoires.
Sous Windows, presque tous les programmes installent leurs fichiers (tous les fichiers) dans le répertoire nommé :'Program Files' Tel n'est pas le cas sous Linux. Le système de répertoire catégorise tous les fichiers installés. Tous les fichiers de configuration sont en /etc
, tous les fichiers binaires sont en /bin
ou /usr/bin
ou /usr/local/bin
. Voici la structure complète des répertoires avec ce qu'ils contiennent :
/
- Répertoire racine qui constitue la base du système de fichiers. Tous les fichiers et répertoires sont logiquement contenus dans le répertoire racine, quel que soit leur emplacement physique.
/bin
- Contient les programmes exécutables qui font partie du système d'exploitation Linux. De nombreuses commandes Linux, telles que cat, cp, ls, more et tar, se trouvent dans /bin
/boot
- Contient le noyau Linux et d'autres fichiers nécessaires aux gestionnaires de démarrage LILO et GRUB.
/dev
- Contient tous les fichiers de l'appareil. Linux traite chaque périphérique comme un fichier spécial. Tous ces fichiers sont situés dans /dev
.
/etc
- Contient la plupart des fichiers de configuration système et les scripts d'initialisation en /etc/rc.d
sous-répertoire.
/home
- Le répertoire d'accueil est le parent des répertoires d'accueil des utilisateurs.
/lib
- Contient des fichiers de bibliothèque, y compris des modules de pilote chargeables nécessaires pour démarrer le système.
/lost+found
- Répertoire des fichiers perdus. Chaque partition de disque a un répertoire lost+found.
/media
- Répertoire pour monter des systèmes de fichiers sur des supports amovibles tels que des lecteurs de CD-ROM, des disquettes et des lecteurs Zip.
/mnt
- Un répertoire pour les systèmes de fichiers montés temporairement.
/opt
- Les progiciels facultatifs copient/installent les fichiers ici.
/proc
- Un répertoire spécial dans un système de fichiers virtuel. Il contient des informations sur divers aspects d'un système Linux.
/root
- Répertoire d'accueil de l'utilisateur root.
/sbin
- Contient des fichiers binaires administratifs. Les commandes telles que mount, shutdown, umount résident ici.
/srv
- Contient des données pour les services (HTTP, FTP, etc.) offerts par le système.
/sys
- Un répertoire spécial contenant des informations sur les périphériques, tels que vus par le noyau Linux.
/tmp
- Répertoire temporaire pouvant être utilisé comme répertoire de travail (stockage des fichiers temporaires). Le contenu de ce répertoire est effacé à chaque démarrage du système.
/usr
- Contient des sous-répertoires pour de nombreux programmes tels que le système X Window.
/usr/bin
- Contient des fichiers exécutables pour de nombreuses commandes Linux. Il ne fait pas partie du système d'exploitation Linux de base.
/usr/include
- Contient des fichiers d'en-tête pour les langages de programmation C et C++
/usr/lib
- Contient des bibliothèques pour les langages de programmation C et C++.
/usr/local
- Contient des fichiers locaux. Il a des répertoires similaires à ceux contenus dans /usr.
/usr/sbin
- Contient des commandes d'administration.
/usr/share
- Contient des fichiers partagés, tels que des fichiers de configuration par défaut, des images, de la documentation, etc.
/usr/src
- Contient le code source du noyau Linux.
/var
- Contient divers fichiers système tels que le journal, les répertoires de messagerie, le spool d'impression, etc., dont le nombre et la taille ont tendance à changer au fil du temps.
/var/cache
- Zone de stockage des données mises en cache pour les applications.
/var/lib
- Contient des informations relatives à l'état actuel des applications. Les programmes modifient cela lorsqu'ils s'exécutent.
/var/lock
- Contient des fichiers de verrouillage qui sont vérifiés par les applications afin qu'une ressource ne puisse être utilisée que par une seule application.
/var/log
- Contient des fichiers journaux pour différentes applications.
/var/mail
- Contient les e-mails des utilisateurs.
/var/opt
- Contient des données variables pour les packages stockés dans le répertoire /opt.
/var/run
- Contient des données décrivant le système depuis son démarrage.
/var/spool
- Contient des données en attente de traitement.
/var/tmp
- Contient des fichiers temporaires conservés entre les redémarrages du système.
Vous devez adhérer à la spécification du répertoire de base XDG pour votre application . La plupart des réponses ici sont obsolètes ou erronées.
Votre application doit stocker et charger les fichiers de données et de configuration vers/depuis les répertoires pointés par les variables d'environnement suivantes :
$XDG_DATA_HOME
(par défaut :"$HOME/.local/share"
) :fichiers de données spécifiques à l'utilisateur.$XDG_CONFIG_HOME
(par défaut :"$HOME/.config"
) :fichiers de configuration spécifiques à l'utilisateur.$XDG_DATA_DIRS
(par défaut :"/usr/local/share/:/usr/share/"
) :ensemble de répertoires de données système classés par ordre de priorité.$XDG_CONFIG_DIRS
(par défaut :"/etc/xdg"
) :ensemble de répertoires de configuration système classés par ordre de priorité.$XDG_CACHE_HOME
(par défaut :"$HOME/.cache"
) :fichiers de données non essentiels spécifiques à l'utilisateur.
Vous devez d'abord déterminer si le fichier en question est :
- Un fichier de configuration (
$XDG_CONFIG_HOME:$XDG_CONFIG_DIRS
); - Un fichier de données (
$XDG_DATA_HOME:$XDG_DATA_DIRS
); ou - Un fichier non essentiel (cache) (
$XDG_CACHE_HOME
).
Il est recommandé que votre application place ses fichiers dans un sous-répertoire des répertoires ci-dessus. Habituellement, quelque chose comme $XDG_DATA_DIRS/<application>/filename
ou $XDG_DATA_DIRS/<vendor>/<application>/filename
.
Lors du chargement, vous essayez d'abord de charger le fichier à partir des répertoires spécifiques à l'utilisateur ($XDG_*_HOME
) et, en cas d'échec, à partir des répertoires système ($XDG_*_DIRS
). Lors de l'enregistrement, enregistrez uniquement dans des répertoires spécifiques à l'utilisateur (puisque l'utilisateur n'aura probablement pas accès en écriture aux répertoires système).
Pour d'autres annuaires plus orientés utilisateur, reportez-vous à la spécification des annuaires d'utilisateurs XDG . Il définit les répertoires pour le bureau, les téléchargements, les documents, les vidéos, etc.
- Généralement, la configuration système/globale est stockée quelque part sous /etc.
- La configuration spécifique à l'utilisateur est stockée dans le répertoire d'accueil de l'utilisateur, souvent sous la forme d'un fichier caché, parfois sous la forme d'un répertoire caché contenant des fichiers non cachés (et éventuellement d'autres sous-répertoires).
De manière générale, les options de ligne de commande remplaceront les variables d'environnement qui remplaceront les valeurs par défaut de l'utilisateur qui remplaceront les valeurs par défaut du système.