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

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

O Linux possui um diretório temporário padrão para uso geral, como a pasta do Windows C:\Temp? Se sim, onde está localizada? eu encontreiuma pergunta SO sobre como encontrar um tmpdiretório programaticamente, mas quero definir um local temporário em um arquivo de configuração XML com antecedência.

Responder1

OPadrão de hierarquia do sistema de arquivosversão 3.0 diz:

/tmp: arquivos temporários

O /tmpdiretório deve estar disponível para programas que necessitam de arquivos temporários.

Os programas não devem presumir que quaisquer arquivos ou diretórios /tmpsejam preservados entre as invocações do programa.

Justificativa

O padrão IEEE POSIX.1-2008 lista requisitos semelhantes à seção acima. Embora os dados armazenados /tmppossam ser excluídos de maneira específica do site, é recomendado que os arquivos e diretórios localizados /tmpsejam excluídos sempre que o sistema for inicializado.

A FHS adicionou esta recomendação com base em precedentes históricos e práticas comuns, mas não a tornou um requisito porque a administração do sistema não está dentro do escopo desta norma.

/var/tmp : Arquivos temporários preservados entre reinicializações do sistema

O /var/tmpdiretório é disponibilizado para programas que requerem arquivos ou diretórios temporários que são preservados entre reinicializações do sistema. Portanto, os dados armazenados /var/tmpsão mais persistentes do que os dados no /tmp.

Os arquivos e diretórios localizados nele /var/tmpnão devem ser excluídos quando o sistema for inicializado. Embora os dados armazenados em /var/tmpsejam normalmente excluídos de maneira específica do site, é recomendável que as exclusões ocorram em intervalos menos frequentes do que /tmp.

Também oEspecificações básicas do Open Group Edição 7, Variáveis ​​de ambientemenciona o seguinte:

TMPDIR Esta variável deverá representar um caminho de um diretório disponibilizado para programas que necessitam de um local para criar arquivos temporários.

sistematambém tem uma palavra a dizer sobre isso:

/tmp/e/var/tmp/são dois diretórios graváveis ​​mundialmente que os sistemas Linux fornecem para arquivos temporários. O primeiro normalmente está ativadotmpfse, portanto, apoiado por RAM/swap e liberado em cada reinicialização. Este último é normalmente um sistema de arquivos adequado e persistente e, portanto, apoiado por armazenamento físico. Isso significa:

  1. /tmp/deve ser usado apenas para arquivos menores e com tamanho limitado; /var/tmp/deve ser usado para todo o resto.

  2. Os dados que sobreviverão a um ciclo de inicialização não devem ser colocados no arquivo /tmp/.

Se a $TMPDIRvariável de ambiente estiver definida, use esse caminho e não use /tmp/nem /var/tmp/diretamente.

Verhierarquia de arquivos (7)para obter detalhes sobre esses dois (e muitos outros) diretórios de um sistema Linux.

Os caminhos podem ser consultados comcaminho do systemd:

$ systemd-path temporary
/tmp
$ systemd-path temporary-large
/var/tmp

FreeBSD,NetBSD,OpenBSDeLibélulatem algo semelhante descrito noaqui(7)página de manual.

Responder2

Esta é uma questão antiga, então hoje existe outra opção disponível. As distribuições Linux que dependem systemd(que são 90% delas) agora podem usar $XDG_RUNTIME_DIRo diretório (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- mantendo os arquivos privados
  • Esta é uma tmpfsmontagem (também conhecida como unidade RAM) com ótimo desempenho
  • Ele é limpo automaticamente

A desvantagem tmpfsé que ele só deve ser usado para armazenar arquivos pequenos (arquivos PID, arquivos de bloqueio, soquetes etc.).

Responder3

Sim, /tmp é para uso geral. VeraquieaquiNo padrão de hierarquia do sistema de arquivos.

/tmp/ Arquivos temporários (veja também /var/tmp). Muitas vezes não é preservado entre reinicializações do sistema.

Com mais alguns detalhes listados no PDF.

Responder4

A pergunta inicial foi: O Linux possui um diretório temporário padrão. Se sim, onde está localizada? As pastas tmp são encontradas em: File System/tmp & File System/var/tmp O conteúdo /tmp pode ser excluído - se você souber quais arquivos/pastas são necessários/não exigidos por vários aplicativos em um "conforme necessário" base. Os arquivos desnecessários geralmente são aqueles baixados por um aplicativo para facilitar o próprio aplicativo apenas naquele ponto - portanto, não são mais necessários após a execução do aplicativo. A pasta /var/tmp não deve ser tocada.

informação relacionada