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

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

O Linux tem um directório temporário padrão para uso geral, como a pasta C:\Temp do Windows? Em caso afirmativo, onde se encontra? Encontrei uma pergunta SO sobre encontrar um directório tmp programático , mas quero definir uma localização temporária num ficheiro de configuração XML antes do tempo.

Respostas (5)

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

O Filesystem Hierarchy Standard versão 3.0 diz:

/tmp : Ficheiros temporários

O directório /tmp deve ser disponibilizado para programas que requerem ficheiros temporários.

& > Os programas não devem assumir que quaisquer ficheiros ou directórios em /tmp sejam preservados entre invocações do programa.

& > Ratificação & > & > A norma IEEE POSIX.1-2008 enumera requisitos semelhantes aos da secção acima. Embora os dados armazenados em /tmp possam ser apagados de uma forma específica do local, recomenda-se que os ficheiros e directórios localizados em /tmp sejam apagados sempre que o sistema for iniciado.

& > FHS acrescentou 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 se enquadra no âmbito desta norma.

& > ### /var/tmp : Ficheiros temporários preservados entre reinicializações do sistema

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

& > Os ficheiros e directórios localizados em /var/tmp não devem ser apagados quando o sistema é reiniciado. Embora os dados armazenados em /var/tmp sejam tipicamente apagados de uma forma específica do sítio, recomenda-se que os apagamentos ocorram a um intervalo menos frequente do que /tmp.

& Também o The Open Group Base Specifications Issue 7, Environment Variables menciona o seguinte:

TMPDIR Esta variável deve representar um caminho de um directório disponibilizado para programas que necessitam de um local para criar ficheiros temporários.

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

Esta é uma questão antiga, por isso hoje existe outra opção disponível. As distribuições Linux que dependem de systemd (que é 90% delas) podem agora usar $XDG_RUNTIME_DIR directório XDG Base Directory Specification ) para armazenar certos tipos de ficheiros temporários. Está geralmente localizado em /run/user/$uid. Este é um directório por utilizador com 700 permissões que proporciona maior segurança. Este é um tmpfs montagem que fornece desempenho. A desvantagem do tmpfs é que só deve ser usado para manter pequenos ficheiros e tomadas.

Vejo-o como um casamento de /tmp e /var/run.

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

Sim /tmp é para uso geral. Ver aqui e aqui Sobre a Hierarquia Padrão do Sistema de Ficheiros.

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

Com mais alguns detalhes listados no PDF.

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

Não é possível escolher antecipadamente um único nome de directório temporário que funcione para qualquer sistema Linux. Na verdade, também não pode fazer isso no Windows. De acordo com o artigo sobre pastas temporárias da Wikipedia, o directório temporário no Windows é determinado pela variável de ambiente TEMP. Se estivesse simplesmente a usar c:\Temp como directório temporário num sistema Windows que definisse TEMP para outra coisa, então qualquer programa que usasse o seu ficheiro XML para escolher um directório temporário falharia.

Em suma, o directório temporário do sistema é determinado pelo ambiente em todos os sistemas operativos modernos que conheço, incluindo tanto o Windows como qualquer sistema do tipo UNIX. A definição de um único caminho estático como o seu directório temporário só funcionará enquanto as predefinições não forem alteradas.

De qualquer modo, o directório temporário padrão num sistema Linux típico é /tmp. É o equivalente a C:\Temp no sentido de que é apenas o directório temporário padrão, não universal. Mesmo que /tmp esteja disponível, se um utilizador (ou o sistema) tiver definido a variável de ambiente TEMP, o valor dessa variável deve ser utilizado em seu lugar.

Poderá tentar escolher um directório temporário em relação ao directório home do utilizador, que pode ser criado.

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

A questão inicial era: Será que o Linux tem um directório temporário padrão? Em caso afirmativo, onde se encontra? A(s) pasta(s) tmp encontra-se(m) em: File System/tmp & File System/var/tmp O conteúdo /tmp pode ser apagado - se souber quais os ficheiros/pastas necessários/não necessários para várias aplicações numa base de “como necessário”. Os ficheiros não requeridos são normalmente aqueles descarregados por uma aplicação para facilitar a própria aplicação apenas nesse momento - portanto, não são mais requeridos depois de a aplicação ter sido executada. A pasta /var/tmp não deve ser tocada de todo.