salvar em / tmp não está realmente salvando?

10

Abrir, por ex. um anexo de email do Firefox (sem salvá-lo anteriormente); este é um documento do Libre Office, você o edita e, em seguida, pressiona save (não salva 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 esse é o caso do meu Ubuntu 12.04.

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

    
por jj_p 30.03.2014 / 15:58

5 respostas

10

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

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

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

Na maioria das distros (todas?), a pasta /tmp também será esvaziada na reinicialização (os arquivos em /var/tmp devem persistir por mais tempo).

Note também que este comportamento é apenas para 'abrir' um arquivo com um programa externo. Se o arquivo for aberto internamente através de um plugin ou de outra forma, então aparece /tmp não é usado (o arquivo parece estar 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 desabilitar a exclusão de /tmp nos arquivos quando o firefox fechar usando a opção browser.helperApps.deleteTempFileOnExit . Isso pode ser definido através da página about:config (basta digitar isso na barra de endereço e pressionar enter). Se ele existir e for false , basta clicar com o botão direito e escolher entre. Caso contrário, adicione-o fazendo Clique com o botão direito do mouse > New- > Boolean , em seguida, insira o nome da opção e escolha false.

Para armazenar /tmp arquivos após a próxima reinicialização em sistemas baseados em Debian recentes, primeiro olhe para /etc/default/tmpfs e tenha certeza de que não é RAMTMP=yes line. Se estiver comentado ( # no início), está tudo bem (se foi definido, então /tmp estaria em um sistema de arquivos tmpfs na memória e não seria armazenado no disco). Em seguida, adicione ou altere a linha TMPTIME em /etc/default/rcS . Para armazenar /tmp arquivos indefinidamente, você pode fazer:

TMPTIME=infinite

Ou você pode usar um número positivo em vez de infinite para mantê-los por esse número de dias. Quando o tempo acabar, eles serão excluídos na próxima reinicialização. Obviamente, se esta linha for comentada, descomente-a.

    
por 30.03.2014 / 17:27
3

O Firefox tem um cache para arquivos de "abertura". Esse cache é limpo toda vez que você fecha o Firefox. Se você abrir esse arquivo com LO e fechar o Firefox, você notará que o arquivo desaparecerá. Isso é verdade para todo o Firefox independentemente, eles são armazenados em /tmp ou não.

    
por 30.03.2014 / 16:57
2

Do you think this is the correct behavior?

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

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

Shouldn't the program at least remind you that you're not really saving anything?

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

or is there some way to recover the file (also after logout and/or reboot)?

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

    
por 26.04.2014 / 18:08
2

Deixe-me explicar. Quando você escolhe "Abrir com" ao contrário de "Baixar para" na caixa de diálogo, o arquivo ainda é baixado, no ponto em que 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 é encerrado. Se você quisesse mantê-lo, você deveria escolher "Baixar para", ou usar "Salvar como" em seu aplicativo, ou simplesmente mover o arquivo para fora de / var / tmp (onde o filefox o mantém); a exclusão só se aplica ao arquivo em sua localização original.

Observe que o arquivo é excluído mesmo que o outro aplicativo o mantenha aberto (no sentido técnico). Em sistemas Unix-like isso não é um problema: enquanto a entrada de diretório vai embora, o arquivo em si permanece e não será deletado até que o aplicativo o feche [um travamento neste ponto pode deixar o disco em um estado inconsistente; fsck relata esta situação como um "inode não-ligado"]

    
por 14.07.2014 / 22:12
-1

Do you think this is the correct behavior?

Claro que é o comportamento correto. Acontece apenas quando você não escolheu salvar o arquivo, mas optou por abri-lo . Na minha opinião, normalmente é melhor salvar tudo em vez de abrir.

Shouldn't the program at least remind you that you're not really saving anything?

Por quê? Se você quisesse salvar, por que não escolheu baixar o arquivo?

or is there some way to recover the file (also after logout and/or reboot)?

Não. Você teria que copiá-lo quando ainda está no tmp.

    
por 30.03.2014 / 17:05