Applicazioni più recenti
Segui la specifica della directory di base XDG di solito ~/.config/yourapp/*
può essere INF, JSON, YML o qualsiasi altro formato sia adatto alla tua barca, e qualunque file... yourapp
deve corrispondere al nome dell'eseguibile o avere uno spazio dei nomi con la tua organizzazione/azienda/nome utente/gestore a ~/.config/yourorg/yourapp/*
Applicazioni meno recenti
Configurazione per utente, di solito proprio nella tua home directory...
~/.yourapp
file per un singolo file~/.yourapp/
per più file + dati di solito in ~/.yourapp/config
Le configurazioni globali sono generalmente in /etc/appname
file o /etc/appname/
cartella.
Dati globali dell'app:/var/lib/yourapp/
Dati della cache:/var/cache/
Dati di registro:/var/log/yourapp/
Alcune informazioni aggiuntive da tutorialhelpdesk.com
La struttura delle directory di Linux/altri sistemi simili a Unix e i dettagli delle directory.
In Windows, quasi tutti i programmi installano i propri file (tutti i file) nella directory denominata:'Program Files' Questo non è il caso di Linux. Il sistema di directory classifica tutti i file installati. Tutti i file di configurazione sono in /etc
, tutti i file binari sono in /bin
o /usr/bin
o /usr/local/bin
. Ecco l'intera struttura delle directory insieme a ciò che contengono:
/
- Directory principale che costituisce la base del file system. Tutti i file e le directory sono logicamente contenuti all'interno della directory principale indipendentemente dalle loro posizioni fisiche.
/bin
- Contiene i programmi eseguibili che fanno parte del sistema operativo Linux. Molti comandi di Linux, come cat, cp, ls, more e tar, si trovano in /bin
/boot
- Contiene il kernel Linux e altri file necessari ai boot manager di LILO e GRUB.
/dev
- Contiene tutti i file del dispositivo. Linux tratta ogni dispositivo come un file speciale. Tutti questi file si trovano in /dev
.
/etc
- Contiene la maggior parte dei file di configurazione del sistema e gli script di inizializzazione in /etc/rc.d
sottocartella.
/home
- La home directory è la madre delle home directory degli utenti.
/lib
- Contiene i file di libreria, compresi i moduli driver caricabili necessari per avviare il sistema.
/lost+found
- Directory per i file persi. Ogni partizione del disco ha una directory lost+found.
/media
- Directory per il montaggio di file system su supporti rimovibili come unità CD-ROM, floppy disk e unità Zip.
/mnt
- Una directory per i filesystem montati temporaneamente.
/opt
- I pacchetti software opzionali copiano/installano i file qui.
/proc
- Una directory speciale in un filesystem virtuale. Contiene le informazioni su vari aspetti di un sistema Linux.
/root
- Home directory dell'utente root.
/sbin
- Contiene file binari amministrativi. Comandi come mount, shutdown, umount, risiedono qui.
/srv
- Contiene i dati per i servizi (HTTP, FTP, ecc.) offerti dal sistema.
/sys
- Una directory speciale che contiene informazioni sui dispositivi, come visto dal kernel Linux.
/tmp
- Directory temporanea che può essere utilizzata come directory scratch (memoria per file temporanei). Il contenuto di questa directory viene cancellato ogni volta che il sistema si avvia.
/usr
- Contiene sottodirectory per molti programmi come X Window System.
/usr/bin
- Contiene file eseguibili per molti comandi Linux. Non fa parte del sistema operativo Linux principale.
/usr/include
- Contiene file di intestazione per i linguaggi di programmazione C e C++
/usr/lib
- Contiene librerie per i linguaggi di programmazione C e C++.
/usr/local
- Contiene file locali. Ha directory simili a quelle contenute in /usr.
/usr/sbin
- Contiene comandi amministrativi.
/usr/share
- Contiene file condivisi, come file di configurazione predefiniti, immagini, documentazione, ecc.
/usr/src
- Contiene il codice sorgente per il kernel Linux.
/var
- Contiene vari file di sistema come log, directory di posta, spool di stampa, ecc. che tendono a cambiare in numero e dimensione nel tempo.
/var/cache
- Area di archiviazione per i dati memorizzati nella cache per le applicazioni.
/var/lib
- Contiene informazioni relative allo stato attuale delle applicazioni. I programmi lo modificano quando vengono eseguiti.
/var/lock
- Contiene file di blocco che vengono controllati dalle applicazioni in modo che una risorsa possa essere utilizzata da una sola applicazione.
/var/log
- Contiene file di registro per diverse applicazioni.
/var/mail
- Contiene le email degli utenti.
/var/opt
- Contiene dati variabili per i pacchetti archiviati nella directory /opt.
/var/run
- Contiene dati che descrivono il sistema da quando è stato avviato.
/var/spool
- Contiene dati in attesa di qualche tipo di elaborazione.
/var/tmp
- Contiene file temporanei conservati tra i riavvii del sistema.
Devi rispettare la tua applicazione alla specifica della directory di base XDG . La maggior parte delle risposte qui sono obsolete o sbagliate.
La tua applicazione dovrebbe archiviare e caricare dati e file di configurazione nelle/dalle directory puntate dalle seguenti variabili d'ambiente:
$XDG_DATA_HOME
(predefinito:"$HOME/.local/share"
):file di dati specifici dell'utente.$XDG_CONFIG_HOME
(predefinito:"$HOME/.config"
):file di configurazione specifici dell'utente.$XDG_DATA_DIRS
(predefinito:"/usr/local/share/:/usr/share/"
):insieme di directory di dati di sistema in ordine di precedenza.$XDG_CONFIG_DIRS
(predefinito:"/etc/xdg"
):insieme di directory di configurazione del sistema in ordine di precedenza.$XDG_CACHE_HOME
(predefinito:"$HOME/.cache"
):file di dati non essenziali specifici dell'utente.
Dovresti prima determinare se il file in questione è:
- Un file di configurazione (
$XDG_CONFIG_HOME:$XDG_CONFIG_DIRS
); - Un file di dati (
$XDG_DATA_HOME:$XDG_DATA_DIRS
); o - Un file (cache) non essenziale (
$XDG_CACHE_HOME
).
Si consiglia che l'applicazione inserisca i propri file in una sottodirectory delle directory precedenti. Di solito, qualcosa come $XDG_DATA_DIRS/<application>/filename
o $XDG_DATA_DIRS/<vendor>/<application>/filename
.
Durante il caricamento, provi prima a caricare il file dalle directory specifiche dell'utente ($XDG_*_HOME
) e, se fallisce, dalle directory di sistema ($XDG_*_DIRS
). Durante il salvataggio, salva solo nelle directory specifiche dell'utente (poiché l'utente probabilmente non avrà accesso in scrittura alle directory di sistema).
Per altre directory più orientate all'utente, fai riferimento alla specifica delle directory utente XDG . Definisce le directory per il desktop, i download, i documenti, i video, ecc.
- Generalmente la configurazione di sistema/globale è memorizzata da qualche parte sotto /etc.
- La configurazione specifica dell'utente viene archiviata nella home directory dell'utente, spesso come file nascosto, a volte come directory nascosta contenente file non nascosti (e possibilmente più sottodirectory).
In generale, le opzioni della riga di comando sovrascriveranno le variabili di ambiente che sovrascriveranno le impostazioni predefinite dell'utente che sovrascriveranno le impostazioni predefinite del sistema.