Comment faire en sorte que le dossier Téléchargements se comporte comme un répertoire temporaire

14

Afin de réduire l'utilisation de l'espace disque, je souhaite automatiser un nettoyage temporaire dans mon Downloadsdossier. J'ai imaginé deux façons de le faire:

1) Changer les configurations de Firefox, etc. pour enregistrer les fichiers /tmp/(cela nécessiterait, par sécurité, de changer la variable TMPTIMEen /etc/default/rcS7 jours ou plus);

2) Transformer le ~/Downloadsdossier en un répertoire temporaire qui se comporte de manière similaire à /tmp/, supprimer les anciens fichiers. Le problème est que les /tmpfichiers sont supprimés sans discrimination à la fin de la session; dans le ~/Downloadsdossier, il serait préférable de supprimer les fichiers par leur date de création.

Je ne suis pas très sympathique à la première option, car elle nécessite beaucoup de configuration. J'aimerais de l'aide pour implémenter le second. Quelle est la meilleure façon de procéder?

henrique
la source

Réponses:

19

Au lieu de changer le fonctionnement du répertoire, vous pourriez avoir un petit script de nettoyage. Il est plus facile à mettre en œuvre et probablement moins dangereux à long terme.

Ce qui suit supprimera tout ce qui a plus de 7 jours dans votre ~/Download/répertoire:

find ~/Download/ -mtime +7 -delete

Vous voudrez peut-être tester cela en supprimant simplement le -deletesegment et en vérifiant les fichiers qu'il renvoie. Mais une fois que vous en êtes satisfait, vous pouvez le planifier pour qu'il s'exécute une fois par jour en l'exécutant crontab -eet en l'ajoutant sur une nouvelle ligne:

@daily find ~/Download/ -mtime +7 -delete

ControlXpuis Ypour enregistrer et quitter et vous avez terminé.

Oli
la source
5
Le tmpwatchou le tmpreaperpackage sont de meilleures approches pour nettoyer un répertoire, ayant été conçus exactement à cette fin.
MikeyB
+1 @MikeyB, mais je mettrais également cela dans un script qui s'exécute à chaque démarrage, car un cronjob ne fonctionnera pas si la machine est éteinte lorsque le travail est dû.
scottl
@scott pourquoi ne pas simplement dupliquer la ligne avec @rebootau lieu de @dailyfaire exécuter la commande au démarrage également
Programster