Onde é o diretório temporário no Linux?

48

O Linux tem um diretório temporário padrão para uso geral, como a pasta C:\Temp do Windows? Se sim, onde está localizada? Eu encontrei uma pergunta sobre como encontrar um diretório tmp programaticamente , mas eu quero definir um local temporário em um arquivo de configuração XML antes do tempo.

    
por Pops 06.09.2011 / 21:43

4 respostas

76

O Padrão da hierarquia do sistema de arquivos versão 3.0 diz:

/tmp : Temporary files

The /tmp directory must be made available for programs that require temporary files.

Programs must not assume that any files or directories in /tmp are preserved between invocations of the program.

Rationale

IEEE standard POSIX.1-2008 lists requirements similar to the above section. Although data stored in /tmp may be deleted in a site-specific manner, it is recommended that files and directories located in /tmp be deleted whenever the system is booted.

FHS added this recommendation on the basis of historical precedent and common practice, but did not make it a requirement because system administration is not within the scope of this standard.

/var/tmp : Temporary files preserved between system reboots

The /var/tmp directory is made available for programs that require temporary files or directories that are preserved between system reboots. Therefore, data stored in /var/tmp is more persistent than data in /tmp.

Files and directories located in /var/tmp must not be deleted when the system is booted. Although data stored in /var/tmp is typically deleted in a site-specific manner, it is recommended that deletions occur at a less frequent interval than /tmp.

Além disso, as Especificações do grupo aberto, edição 7, variáveis de ambiente mencionam as seguintes :

TMPDIR This variable shall represent a pathname of a directory made available for programs that need a place to create temporary files.

    
por 06.09.2011 / 22:09
9

Sim / tmp é para uso geral. Veja aqui e aqui No Padrão de Hierarquia do Sistema de Arquivos.

/tmp/ Temporary files (see also /var/tmp). Often not preserved between system reboots.

Com mais alguns detalhes listados no PDF.

    
por 06.09.2011 / 22:13
7

Essa é uma pergunta antiga, então hoje há outra opção disponível. As distribuições Linux que dependem do systemd (que é 90% delas) agora podem usar o diretório $XDG_RUNTIME_DIR ( Especificação do Diretório Base XDG ) para armazenar certos tipos de arquivos temporários. Geralmente está localizado em /run/user/$uid . Este é um diretório por usuário com 700 de permissões, o que proporciona maior segurança. Esta é uma tmpfs mount que fornece desempenho. A desvantagem de tmpfs é que ele deve ser usado apenas para manter arquivos e soquetes pequenos.

Eu vejo isso como um casamento entre /tmp e /var/run .

    
por 28.03.2017 / 19:56
0

Você não pode escolher um único nome de diretório temporário antes do tempo que funcionará para qualquer sistema Linux. Na verdade, você não pode fazer isso no Windows também. De acordo com o artigo da Wikipédia sobre pastas temporárias , o diretório temporário no Windows é determinado pela variável de ambiente TEMP. Se você estivesse simplesmente usando c:\Temp como um diretório temporário em um sistema Windows que definisse TEMP para algo diferente, qualquer programa que usasse seu arquivo XML para escolher um diretório temporário falharia.

Em suma, o diretório temporário do sistema é determinado pelo ambiente em todos os sistemas operacionais modernos que eu conheço, incluindo o Windows e qualquer sistema semelhante ao UNIX. Definir um único caminho estático como seu diretório temporário só funcionará, desde que os padrões não tenham sido alterados.

De qualquer forma, o diretório temporário padrão em um sistema Linux típico é /tmp . É o equivalente a C:\Temp no sentido de que é apenas o diretório temporário padrão, não universal. Mesmo se /tmp estiver disponível, se um usuário (ou o sistema) tiver definido a variável de ambiente TEMP, o valor dessa variável deverá ser usado no lugar.

Você pode tentar escolher um diretório temporário relativo ao diretório pessoal do usuário, que pode ser criado.

    
por 06.09.2011 / 22:23