1 votes

Existe-t-il un programme permettant de supprimer automatiquement les fichiers cache ?

Chaque fois que j'ai besoin de vider le cache, je dois aller dans chaque dossier et en supprimer le contenu. Le faire via le terminal supprime le dossier entier, ce qui n'est pas recommandé. Que dois-je faire ?

3voto

Wilfred Smith Points 1844

Pour de nombreuses questions de ce type, j'ai l'impression que les gens répondent sans se demander quelle est l'intention de l'auteur de la question.

Pourquoi voulez-vous supprimer automatiquement les fichiers cache ? C'est généralement une mauvaise idée.

J'ai vu tant de questions où les gens voulaient supprimer une application système, un cache, un fichier de configuration ou autre. Il faut alors réinstaller le système d'exploitation ou l'utilisateur se plaint que la machine est instable ou peu fiable et quelqu'un doit passer des heures, des jours ou des mois à essayer de diagnostiquer quelque chose qui n'aurait jamais dû être modifié.

MacOS, en particulier, n'est PAS Windows. Vous n'avez PAS besoin de purger les caches, de défragmenter ou quoi que ce soit d'autre. Si vous le faites, et surtout si vous le faites régulièrement, c'est qu'il y a un problème plus profond.

J'écris cette réponse sur un MacBook Pro qui n'a fait l'objet d'aucune maintenance explicite depuis El Capitan ; j'utilise maintenant la dernière version Mojave après l'avoir mise à niveau des dizaines de fois. Je développe des logiciels, j'ai généralement une tonne de conteneurs Docker et de VM Parallels en cours et je fais beaucoup de montage vidéo avec FCP X/Motion. J'ai eu extrêmement peu de problèmes et aucun plantage sur plusieurs années d'utilisation. Les performances sont excellentes.

Cela s'explique en partie par le fait que je ne me réveille pas le matin pour décider, sur un coup de tête, de supprimer mes fichiers de cache, de modifier manuellement ma table de partition ou de supprimer des services clés tels que Safari.

Alors que j'écris cette réponse, je vois des messages sur des sujets tels que "Firefox se bloque lorsque je supprime les fichiers de cache et les cookies" et "Comment restaurer un trousseau de clés supprimé accidentellement". Traitez-moi de stupide AF, mais pourquoi diable tentez-vous le destin ?

Tous les logiciels reposent sur de nombreuses hypothèses quant à leurs fondements. Personne ne peut écrire un code qui tienne compte de toutes les possibilités. Je sais que je suis en plein dans le domaine de la rhétorique, mais vous ne devriez pas supprimer les fichiers de cache à moins de connaître intimement chaque ligne de code qui utilise ces fichiers de cache, directement ou indirectement. Je vous assure que ni Apple ni Microsoft n'ont testé le bon fonctionnement de leurs logiciels si une partie ou la totalité des fichiers cache du système disparaît... en fait, avoir un ensemble incohérent de fichiers cache parce que vous avez supprimé certains d'entre eux mais que vous ne connaissiez même pas tous les autres, c'est précisément la façon dont vous vous retrouvez en difficulté.

Et si vous ressentez toujours le besoin de fouiller sous le capot, sauvegardez religieusement, s'il vous plaît. Un jour, vous allez faire une gaffe et faire un "sudo rm -rf /" ou créer une incohérence qui ne pourra pas être facilement corrigée.

Pensez-y... Humpty Dumpty a été poussé...

0voto

slm Points 4018

Méthode n° 1 : Utilisation find

Vous pouvez utiliser les outils standard de l'interface de programmation d'UNIX pour effectuer cette opération à partir du terminal assez facilement. L'outil standard de recherche de fichiers et de répertoires s'appelle ironiquement find .

Par exemple, ici, je l'utilise pour trouver tous les .gz dossiers sous / :

$ sudo find /Library/Caches/ -type f -name '*.gz' | head
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_oceans/0/0_0.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/0/0_2.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/0/0_0.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/0/0_4.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/0/0_3.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/0/0_1.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/0/0_5.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/0/0_7.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/1/1_2.xml.gz
/Library/Caches//WorldWindData/Earth/PlaceNames/WFSPlaceNamesVersion1.0/toppwpl_waterbodies/1/1_0.xml.gz

Vous pouvez alors construire un find qui localisera vos fichiers et dira ensuite à find pour les supprimer comme suit :

$ find /path/to/some/dir -type f -name '*.gz' -delete

Exemple

Ici, je crée un répertoire d'échantillons appelé somedir qui contiendra un tas de faux .plist pour montrer comment la commande ci-dessus peut fonctionner.

$ mkdir dir{1..10}
$ touch dir{1..10}/file{1..10}.gz file{1..10}.gz

Il en résultera des sous-répertoires nommés dir1 , dir2 , ..., dir10 avec des fichiers à la fois à l'intérieur et à l'extérieur des noms file1.gz , ..., file10.gz .

Une partie de la structure :

$ tree  | head -20
.
 dir1
    file1.gz
    file10.gz
    file2.gz
    file3.gz
    file4.gz
    file5.gz
    file6.gz
    file7.gz
    file8.gz
    file9.gz
 dir10
    file1.gz
    file10.gz
    file2.gz
    file3.gz
    file4.gz
    file5.gz
    file6.gz
...
...

Maintenant, pour supprimer tous les .gz des dossiers :

$ find . -type f -name '*.gz' -delete

Il en résulte ceci :

$ tree
.
 dir1
 dir10
 dir2
 dir3
 dir4
 dir5
 dir6
 dir7
 dir8
 dir9

10 directories, 0 files

Plus de dossiers

Si vous devez supprimer plus de .gz vous pouvez inclure plus de -name... pour les spécifier.

$ find . -type f -name '*.gz' -o -name '*.blah'

Ici, nous recherchons les fichiers qui correspondent au modèle .gz o .blah . Les -o est un opérateur logique OR pour find .

Méthode n° 2 : Utilisation de AssetCacheManagerUtil

Si votre système utilise le contenu de la mise en cache, vous pouvez utiliser l'outil CLI AssetCacheManagerUtil pour effectuer une flushCache . Si vous n'êtes pas familier avec cette fonctionnalité de MacOS :

La mise en cache du contenu est une fonctionnalité de MacOS Internet et d'accélérer l'installation de logiciels sur les ordinateurs Mac, iOS et Apple TV.

La mise en cache du contenu accélère le téléchargement des dis et les données que les utilisateurs stockent dans iCloud en sauvegardant le contenu que les ordinateurs Mac locaux, les appareils iOS et les appareils Apple TV. Le contenu sauvegardé est stocké dans un cache de contenu sur un Mac et est et peut être récupéré par d'autres appareils sans passer par l'internet. Internet.

Cette CLI dispose d'une page de manuel qui explique comment l'utiliser.

$ man AssetCacheManagerUtil

Vous pouvez utiliser cette commande pour vérifier s'il est déjà actif :

$ AssetCacheManagerUtil status

Pour vider le contenu mis en cache, vous devez utiliser cette commande :

$ sudo AssetCacheManagerUtil flushCache

2019-04-18 20:25:25.510 AssetCacheManagerUtil[70975:1826791] La mise en cache du contenu a vidé son cache.

Pour vider votre contenu personnel mis en cache :

$ sudo AssetCacheManagerUtil flushPersonalCache

2019-04-18 20:26:03.147 AssetCacheManagerUtil[71033:1827060] La mise en cache du contenu a vidé son cache.

Pour en savoir plus sur le service de mise en cache de MacOS, cliquez ici :

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X