Pendant quelques années, dans mon $HOME
répertoire, de nombreux fichiers et répertoires cachés sont apparus.
Je voudrais supprimer continuellement les inutiles.
Comment savoir quelles applications ont créé ces fichiers et répertoires cachés.
Comment puis-je être sûr qu'il est sûr de supprimer les fichiers et répertoires cachés et rien d'important ne sera perdu et rien en fonction d'eux ne cessera de fonctionner?
Réponses:
Vous pouvez simplement les déplacer temporairement.
Celui-ci trouvera tous les fichiers de votre
$HOME
répertoire - sans récursivité dans les répertoires enfants - qui n'ont pas été consultés depuis un an. Il mettra à jour le temps d'accès pour chacun d'eux maintenant, puis les déplacera tous dans un répertoire nommé.trash
. Si vous rencontrez des problèmes entre le moment où vous l'exécutez et l'heure à laquelle vous décidez de commencer à supprimer les anciens fichiers,~/.trash
vous pouvez essayer de reculer certains d'entre eux et voir si certains de ceux que vous avez mis à la poubelle en étaient la cause.la source
relatime
place. fromman mount
:: mettre àrelatime
jour les temps d'accès aux inodes par rapport à modifier ou changer l'heure. L'heure d'accès n'est mise à jour que si l'heure d'accès précédente était antérieure à l'heure de modification ou de changement actuelle. (Similaire ànoatime
, mais il ne casse pasmutt
ou à d'autres applications qui ont besoin de savoir si un fichier a été lu depuis la dernière fois qu'il a été modifié.) Et de toute façon, utilisez-m
et-mtime
travaillez avec modtime. ou tout ce que vous aimez.Si vous êtes à la racine de votre système, vous pouvez utiliser la fonction de noyau d' audit pour avoir le maximum d'informations sur qui / quand / quoi accéder / créer / modifier les fichiers. voir ce tutoriel pour des exemples à saveur debian
Si vous ne disposez pas d'un accès root, vous pouvez utiliser une crontab ou un script avec une boucle infinie + sleep pour exécuter les fichiers lsof & grep dans votre homedir. Voir la page de manuel de lsof . Cependant, il n'affichera que vos applications qui ont un descripteur de fichier ouvert au moment où vous lancez lsof. Si une application ouvre un fichier, le modifie puis le ferme, vous ne verrez pas cette modification dans lsof.
une doublure comme celle-ci devrait faire l'affaire:
lsof -u $(id -u) 2>/dev/null |grep -P $HOME'/[^\s]*$'
Une autre façon consiste à utiliser l' API du noyau inotify pour vérifier quand un fichier est en cours d'accès. Hélas, c'est un système asynchrone, et vous n'aurez pas de détails comme "quelle application", "précisément quand", "quel utilisateur". Vous n'aurez qu'un rappel sur "ce fichier a été modifié / accédé ...". Certaines applications (Inotify, FAM, gamin) vous offrent un accès simple à l'api
la source
inotify
pour déclencherlsof
. Le système est tout simplement trop rapide pour que cette idée fonctionne: le processus a souvent disparu ou a fermé le fichier avant que lsof puisse être exécuté. Dans certains cas, cela peut encore fonctionner, mais probablement très peu.Vous pouvez rechercher
atime
et supprimer des fichiers non utilisés depuis longtemps (à condition que vous n'ayez pas configuré votre système pour ne pas utiliser atime), mais c'est plutôt risqué (voyeztmpreaper
si vous voulez aller dans ce sens).Au lieu de cela, je suggère Bleachbit , un programme d'interface graphique interactif pour supprimer la cruauté.
la source