2011-09-06 19:43:10 +0000 2011-09-06 19:43:10 +0000
65
65

Dov'è la directory temporanea in Linux?

Linux ha una directory temporanea standard per uso generale, come la cartella C:\Temp di Windows? Se sì, dove si trova? Ho trovato una domanda di SO su come trovare programmaticamente una cartella tmp , ma voglio impostare una posizione temporanea in un file di configurazione XML prima del tempo.

Risposte (5)

97
97
97
2011-09-06 20:09:43 +0000

Il Filesystem Hierarchy Standard versione 3.0 dice:

/tmp : File temporanei

La directory /tmp deve essere resa disponibile per programmi che richiedono file temporanei.

I programmi non devono assumere che qualsiasi file o directory in /tmp sia conservato tra le invocazioni del programma.

Ragionamento

Lo standard IEEE POSIX.1-2008 elenca requisiti simili alla sezione precedente. Sebbene i dati memorizzati in /tmp possano essere cancellati in un modo specifico del sito, si raccomanda che i file e le directory situati in /tmp siano cancellati ogni volta che il sistema viene avviato.

FHS ha aggiunto questa raccomandazione sulla base dei precedenti storici e della pratica comune, ma non l'ha resa un requisito perché l'amministrazione del sistema non rientra nello scopo di questo standard.

/var/tmp : File temporanei conservati tra i riavvii del sistema

La directory /var/tmp è resa disponibile per i programmi che richiedono file o directory temporanei conservati tra i riavvii del sistema. Pertanto, i dati memorizzati in /var/tmp sono più persistenti dei dati in /tmp.

I file e le directory che si trovano in /var/tmp non devono essere cancellati quando il sistema viene avviato. Sebbene i dati memorizzati in /var/tmp siano tipicamente cancellati in modo specifico per il sito, si raccomanda che le cancellazioni avvengano ad un intervallo meno frequente di /tmp.

Anche il The Open Group Base Specifications Issue 7, Environment Variables menziona quanto segue:

TMPDIR Questa variabile deve rappresentare un percorso di una directory resa disponibile per i programmi che hanno bisogno di un posto per creare file temporanei.

11
11
11
2017-03-28 17:56:59 +0000

Questa è una vecchia domanda, quindi oggi c'è un'altra opzione disponibile. Le distribuzioni Linux che si basano su systemd (che è il 90% di esse) possono ora utilizzare la directory $XDG_RUNTIME_DIR XDG Base Directory Specification ) per memorizzare alcuni tipi di file temporanei. Generalmente si trova a /run/user/$uid. Questa è una directory per utente con permessi 700 che fornisce una migliore sicurezza. Questo è un montaggio tmpfs che fornisce prestazioni. L'aspetto negativo di tmpfs è che dovrebbe essere usato solo per tenere piccoli file e socket.

lo vedo come un matrimonio tra /tmp e /var/run.

10
10
10
2011-09-06 20:13:09 +0000

Sì /tmp è per uso generale. Vedere qui e qui sullo standard della gerarchia del filesystem.

/tmp/ File temporanei (vedi anche /var/tmp). Spesso non vengono conservati tra i riavvii del sistema.

Con alcuni dettagli in più elencati nel PDF.

2
2
2
2011-09-06 20:23:58 +0000

Non si può scegliere in anticipo un singolo nome di directory temporanea che funzioni per qualsiasi sistema Linux. Infatti, non potete farlo nemmeno su Windows. Secondo l'articolo di Wikipedia sulle cartelle temporanee , la directory temporanea su Windows è determinata dalla variabile d'ambiente TEMP. Se tu stessi semplicemente usando c:\Temp come directory temporanea su un sistema Windows che ha impostato TEMP su qualcos'altro, allora qualsiasi programma che usa il tuo file XML per scegliere una directory temporanea fallirebbe.

In breve, la directory temporanea di sistema è determinata dall'ambiente su tutti i sistemi operativi moderni che conosco, inclusi sia Windows che qualsiasi sistema UNIX-like. Impostare un singolo percorso statico come directory temporanea funzionerà solo se i valori predefiniti non sono stati cambiati.

Comunque, la directory temporanea standard in un tipico sistema Linux è /tmp. È l'equivalente di C:\Temp nel senso che è solo la directory temporanea di default, non universale. Anche se /tmp è disponibile, se un utente (o il sistema) ha impostato la variabile d'ambiente TEMP, il valore di quella variabile dovrebbe essere usato al suo posto.

Potreste provare a scegliere una directory temporanea relativa alla home directory dell'utente, che potete creare.

0
0
0
2019-07-27 13:18:41 +0000

La domanda iniziale era: Linux ha una directory temporanea standard. Se sì, dove si trova? Le cartelle tmp si trovano in: File System/tmp & File System/var/tmp Il contenuto di /tmp potrebbe essere cancellato - se sai quali file/cartelle sono richiesti/non richiesti da varie applicazioni su una base “as required”. I file non richiesti sono di solito quelli scaricati da un'app per facilitare l'app stessa solo in quel momento, quindi non più richiesti dopo che l'app ha funzionato. La cartella /var/tmp non dovrebbe essere toccata affatto.