salvar em / tmp não é realmente salvar?

10

Abrir, por exemplo, um anexo de email do Firefox (sem salvá-lo anteriormente); este é um documento do Libre Office, você o edita e pressiona salvar (não salvar como) e fecha o editor de texto e o navegador. Em seguida, o documento desaparece, pois foi armazenado por padrão em /tmp. Pelo menos este é o caso no meu Ubuntu 12.04.

Você acha que esse é o comportamento correto? O programa não deveria pelo menos lembrá-lo de que você não está realmente salvando nada? ou existe alguma maneira de recuperar o arquivo (também após o logout e / ou reinicialização)?

jj_p
fonte

Respostas:

10

Brincando com isso, acho que quando você escolhe abrir um documento com um programa externo no Firefox, o que acontece é que o Firefox baixa o programa /tmpe executa o programa escolhido com o arquivo baixado como argumento (leia 'abre o arquivo com programa escolhido ').

Se você salvar o arquivo (sem escolher Save Asou o equivalente) de dentro do programa, ele usará esse arquivo em /tmp.

O Firefox limpará esses arquivos temporários quando for fechado. Assim, você pode recuperar o arquivo se fechar o LibreOffice, mas não o Firefox. No entanto, assim que o Firefox for fechado, o arquivo será excluído.

Na maioria das distribuições (todas?), A /tmppasta também será esvaziada na reinicialização (os arquivos /var/tmpdevem persistir por mais tempo).

Observe também que esse comportamento é apenas para 'abrir' um arquivo com um programa externo. Se o arquivo for aberto internamente por meio de um plug-in ou de outra forma, ele /tmpnão será usado (o arquivo parece estar armazenado em cache em outro lugar junto com as próprias páginas da web).

Atualizar

Para referência (eu não recomendo fazer isso, a menos que seja necessário), você pode desativar a exclusão de /tmparquivos quando o Firefox fechar usando a browser.helperApps.deleteTempFileOnExitopção Isso pode ser definido através da about:configpágina (basta digitar na barra de endereços e pressionar Enter). Se existir e existir false, clique com o botão direito do mouse e escolha alternar. Caso contrário, adicione- o clicando com o botão direito do mouse-> Novo-> Booleano , digite o nome da opção e escolha falso.

Para armazenar /tmparquivos após a próxima reinicialização em sistemas recentes baseados no Debian, primeiro olhe /etc/default/tmpfse verifique se não há RAMTMP=yeslinha. Se for comentado ( #no início), tudo bem (se estiver definido, /tmpo sistema estará em um tmpfssistema de arquivos na memória e não será armazenado em disco). Em seguida, adicione ou altere a TMPTIMElinha /etc/default/rcS. Para armazenar /tmparquivos indefinidamente, você pode:

TMPTIME=infinite

Ou você pode usar um número positivo em vez de infinitemantê-los por esse número de dias, assim que o tempo acabar, eles serão excluídos na próxima reinicialização. Obviamente, se essa linha for comentada, remova o comentário.

Graeme
fonte
Observe que o fato de que /tmpé limpo na reinicialização é porque /tmpestá montado como a tmpfs, que armazena seus arquivos na RAM (ou troca), perdendo seu conteúdo depois de desmontá-lo.
Darkhogg
1
@Darkhogg, não é o caso. /tmparquivos geralmente são limpos especificamente. Eu atualizei como as configurações para isso podem ser alteradas em sistemas baseados no Debian.
Graeme
Não sabia disso! +1 nesse comentário.
Darkhogg
1
@glglgl nome do
Graeme
1
Quando um arquivo é aberto no Firefox por meio de um plug-in, ele pode especificar como deseja que o arquivo seja entregue: no disco ou diretamente na memória. A maioria dos plugins escolhe memória.
Mark
3

O Firefox possui um cache para "abrir" arquivos. Esse cache é limpo toda vez que você fecha o Firefox. Se você abrir esse arquivo com o LO e fechar o Firefox, notará que o arquivo desaparecerá. Isso é verdade para todos os Firefox independentemente, eles estão armazenados /tmpou não.

Braiam
fonte
2

Você acha que esse é o comportamento correto?

Eu tenho que dizer que não acho. Mas então sou um pouco tendenciosa, tendo quase perdido seis horas de trabalho devido a essa peculiaridade.

Eu acho que qualquer GUI que permita ao usuário fazer algo potencialmente desastroso sem avisá-lo é falha, não importa quão "lógica" seja a decisão de design por trás dela. Isso é especialmente verdade quando os usuários podem fazer exatamente a mesma coisa em programas semelhantes (como o Chrome) sem efeitos negativos.

O programa não deveria pelo menos lembrá-lo de que você não está realmente salvando nada?

Hmmm ... talvez seja útil um pop-up com uma caixa de seleção dizendo "Não mostrar esta mensagem novamente". Ainda mais útil seria uma pequena correção para o LibreOffice e programas similares avisando o usuário se o arquivo que está salvando está sendo salvo em / tmp ou em qualquer outro lugar. Quero dizer, se você pressionar "salvar", espera que o arquivo seja salvo em algum lugar, certo?

ou existe alguma maneira de recuperar o arquivo (também após o logout e / ou reinicialização)?

Sim, se você tiver sorte. Inicializei meu computador a partir de uma instalação usb linux e consegui recuperar o arquivo usando o extundelete.

Matt_M
fonte
2

Deixe-me explicar. Quando você escolhe "Abrir com" em vez de "Baixar para" na caixa de diálogo, o arquivo ainda é baixado, quando o Firefox abre o arquivo baixado com o aplicativo. No entanto, a suposição é que você não deseja manter o arquivo, portanto esse arquivo é excluído quando o Firefox sai. Se você quisesse mantê-lo, deveria ser escolhido "Baixar para" ou "Salvar como" no seu aplicativo ou simplesmente mover o arquivo para fora de / var / tmp (onde o filefox o mantém); a exclusão se aplica apenas ao arquivo em seu local original.

Observe que o arquivo é excluído mesmo que o outro aplicativo o mantenha aberto (no sentido técnico). Em sistemas tipo Unix, isso não é um problema: enquanto a entrada do diretório desaparece, o próprio arquivo permanece e não será excluído até que o aplicativo o feche [uma falha nesse momento pode deixar o disco em um estado inconsistente; O fsck relata esta situação como um "inode desvinculado"]

Lior Silberman
fonte
-1

Você acha que esse é o comportamento correto?

Claro que é o comportamento certo. Isso só acontece quando você não escolheu salvar o arquivo, mas optou por abri- lo. Na minha opinião, geralmente é melhor salvar tudo em vez de abrir.

O programa não deveria pelo menos lembrá-lo de que você não está realmente salvando nada?

Por quê? Se você queria salvar, por que não escolheu fazer o download do arquivo?

ou existe alguma maneira de recuperar o arquivo (também após o logout e / ou reinicialização)?

Não. Você precisaria copiá-lo quando ele ainda estiver em tmp.

Pavel Šimerda
fonte