Estou usando o Ubuntu 22.04LTS. Gostaria de criar uma pasta "temp" onde durante minha sessão eu salvo os arquivos que são, como o nome sugere, temporários. Como posso definir um script que, ao desligar, exclua automaticamente o conteúdo desta pasta?
Ex: Baixo alguns documentos que preciso para algumas tarefas mas no final das contas não preciso guardá-los, evitando assim acumular arquivos inúteis.
Alternativa 01: (Ver alternativa 02 ou comentário de @Raffa para deficiência da alternativa 01.)
Vamos criar nosso diretório temporário e possuí-lo como usuário normal para que possamos escrever nele como usuário normal:
Vamos escrever um script para remover os arquivos temporários na inicialização do sistema. Armazenaremos o script no seguinte diretório:
Crie um arquivo chamado
remove_my_temp_files.sh
como:Escreva o seguinte neste arquivo:
Agora, crie um arquivo chamado
remove_my_temp_files.service
como:E escreva o seguinte neste arquivo:
Agora, finalmente habilite
remove_my_temp_files.service
como:Agora, os arquivos e diretórios criados neste
/my_temp_files/
diretório serão excluídos a cada inicialização do sistema.Alternativa 02:
Como @Raffa sugere em seus comentários abaixo, minha maneira de fazer isso
rm /path/to/dir/*
é limitada pelo tamanho permitido da linha de comando, e usar o serviço do sistema é um pouco demais para uma tarefa que pode ser simplesmente realizada, comocrontab
ele sugere, aqui está a resposta alternativa:Escreva o seguinte código em
$HOME/bin/remove_user_temp.sh
:Torne este script executável:
Edite
crontab
com:Escolha o editor de arquivo de sua preferência, se permitido, e comece editando o cron job. No final do arquivo, adicione:
Salve sua edição e saia do crontab. Isso também excluirá os arquivos do seu diretório temporário na reinicialização do sistema.
Alternativa 03:
A alternativa mais fácil é colocar seus arquivos temporários
/tmp/
ou/dev/shm/
diretório. Os arquivos armazenados/tmp
serão excluídos na próxima vez que o sistema for inicializado, enquanto os arquivos/dev/shm
serão armazenados na memória do computador (e não no disco) e serão excluídos quando o computador for desligado ou reinicializado.Existe uma maneira integrada no Linux , chamada tmpfs, que pode conseguir exatamente isso. Para usá-lo, crie uma pasta tmpfs, e tudo dentro da pasta depois que você a criou, tmpfs irá evaporar quando não for mais tmpfs ou quando o computador for desligado. A desvantagem é que os arquivos nas pastas tmpfs só podem residir na RAM ou no swap.
O sistema de arquivos não armazena se uma pasta for tmpfs. Para marcar permanentemente uma pasta como tmpfs, você deve editar
/etc/fstab
:Além do tmpfs, os serviços do Ubuntu limpam automaticamente o
/tmp
diretório na inicialização (obrigado raj), para que você possa colocar quaisquer arquivos temporários lá.