Costumo usar o /tmp
diretório em minha máquina Linux para armazenar arquivos temporários (por exemplo, PDFs de um site que quer que eu baixe primeiro etc.) e muitas vezes crio um diretório com meu nome de usuário. Mas a cada inicialização (incluindo todos os arquivos) é excluído. Agora eu sei que posso colocá-lo em /var/tmp
, mas quero que todo o seu conteúdo seja excluído, mas que o próprio diretório seja mantido. Então:
tmp
|- me # this should stay
| |- foo1 # this should be deleted...
| |- bar1 # ...and this as well
|- other stuff...
Há alguma maneira de fazer isso? Talvez com permissões ou com uma configuração especial?
Eu uso
pam-tmpdir
para isso: ele cria um diretório temporário privado do usuário no login. Para configurá-lo, adicioneaos serviços PAM apropriados; em um sistema baseado em Debian, instalar o
libpam-tmpdir
pacote oferecerá fazer isso para você, ou você pode adicionar a linha a/etc/pam.d/common-session
. Na próxima vez que você efetuar login, você encontrará um diretório/tmp/user
com seu id de usuárioTMP
eTMPDIR
definido adequadamente.Uma solução seria usar um
@reboot
cron job:Adicionar isso ao seu crontab
crontab -e
faria com que ele fosse executado sempre que a máquina inicializasse.Ou, use
no arquivo de inicialização do seu shell.
Em ambos os casos, você também pode querer usar
no arquivo de inicialização do seu shell se você quiser usar esse diretório como o diretório temporário padrão.
Se você não está executando nenhum sistema com systemd e ele usa systemd-tmpfiles para gerenciar a limpeza, você deve configurar o diretório usando esse sistema.
Aqui está uma documentação completa . Você provavelmente pode conseguir o que deseja criando
/etc/tmpfiles.d/something.conf
com conteúdos como:Como apontado nos comentários,
/tmp
é para arquivos transitórios e não serão perdidos se forem excluídos. Se você estiver no meio de algo e a máquina reiniciar, tudo o que você escreveu lá desaparecerá e você terá que começar de novo, o que significa que esses arquivos podem não ter sido tão temporários, afinal.Eu mantive um diretório temporário em meu diretório pessoal por muitos anos, começando quando um gigabyte era muito espaço e descobri que exigia limpeza periódica para me livrar de arquivos que se tornaram antigos e grosseiros. Na maioria das vezes, o que restava após esse processo tinha menos de duas semanas, então agora limpo com um cron job que é executado uma vez por dia:
Qualquer coisa que eu baixe ou crie como semi-temporário vai para lá e o sistema limpa qualquer coisa que eu deixo para trás. Qualquer coisa que precise de um lar permanente recebe um muito antes de o cron job se livrar dele.