Univers Apple

03
Déc.
2019

Contrôler et trouver les dossiers les plus volumineux sur votre Mac avec le terminal

Publié par sky

Suite à la demande d’un visiteur dans les commentaires attachés à l’article sur l’activation du trim sur macOS, voici un petit article permettant de contrôler et de trouver les dossiers qui utilisent le plus d’espace de votre disque dur.

Il existe des dizaines de solutions pour réaliser cette action. La solution la plus simple, et certainement la plus commune, est d’utiliser Finder pour vérifier la taille des dossiers les uns après les autres. Malheureusement, Finder n’est vraiment pas le plus performant pour cela, et l’on finit submergé par les nombreuses fenêtres d’informations ouvertes.

Pour ma part, je préfère utiliser le terminal, et les commandes df et du. Comme d’habitude, l’une des raisons principales est qu’il est possible de réaliser cette tâche à distance. Cela permet de limiter le nombre de fenêtres, et éventuellement de faire autre chose pendant que les tailles de dossiers sont calculées.

 

Commençons par la commande df

La commande df est la plus simple, mais la moins utile des deux.  Elle permet, tout simplement de connaitre l’espace disque (Disk free) disponible sur les disques durs montés sur la machine.

Pour obtenir un résultat « humainement » lisible, nous ajoutons le paramètre -h, et en avant.

df -h

Le résultat est immédiat.

Filesystem                          Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1                         112Gi  101Gi   10Gi    91% 26640332  2682930   91%   /
devfs                              189Ki  189Ki    0Bi   100%      654        0  100%   /dev
map -hosts                           0Bi    0Bi    0Bi   100%        0        0  100%   /net
map auto_home                        0Bi    0Bi    0Bi   100%        0        0  100%   /home
localhost:/jPws6TuBfGfyQHE53kgiTo  112Gi  112Gi    0Bi   100%        0        0  100%   /Volumes/MobileBackups
/dev/disk2s2                       8.8Gi  4.4Gi  4.4Gi    51%  1159940  1144640   50%   /Volumes/InstallESD
/dev/disk3s2                       224Gi  133Gi   91Gi    60% 34865905 23727843   60%   /Volumes/Backup
/dev/disk3s3                       242Gi   57Gi  185Gi    24% 15014815 48371333   24%   /Volumes/Media

Il s’agit d’un tableau listant quelques éléments, associés à leurs tailles : totale, utilisée, libre, la capacité (en pourcentage), et le nom du point de montage.

Il peut parfois y avoir des éléments en plus, pour les éviter, vous pouvez utiliser la modification suivante pour afficher uniquement les disques

df -h | grep "/dev/disks*"

Le résultat est ainsi plus facile à lire.

/dev/disk1                         112Gi  101Gi   10Gi    91% 26642600  2680662   91%   /
/dev/disk2s2                       8.8Gi  4.4Gi  4.4Gi    51%  1159940  1144640   50%   /Volumes/InstallESD
/dev/disk3s2                       224Gi  133Gi   91Gi    60% 34854960 23738788   59%   /Volumes/Backup
/dev/disk3s3                       242Gi   57Gi  185Gi    24% 15014815 48371333   24%   /Volumes/Media

Malheureusement, ll n’y a plus l’en-tête du tableau indiquant à quoi correspond chaque colonne, cependant, cela reste facilement devinable.

Il est possible d’obtenir un résultat équivalent, avec la commande

diskutil list

que nous avons pu voir à plusieurs reprises, dans différents articles.

 

Continuons avec la commande ls

Il s'agit d'une commande très classique, mais la commande ls va nous permettre de récupérer la liste des dossiers à la racine du disque que vous souhaitez vérifier.

Nous lui ajouterons divers paramètres dont le -l qui permet d'obtenir le listing "long".

Intéressons nous au disque principal, si vous regardez la liste des dossiers avec Finder, vous verrez 4 dossiers

Applications
Bibliothèque
Système
Utilisateurs

Malheureusement, Finder est un petit menteur, et occulte volontaire les dossiers Linux/UNIX qui se trouvent à la racine du disque, et qui peuvent contenir pas mal de données.

Avec votre terminal, placez vous à la racine du site

cd /

puis récupérez la liste des dossiers présents, avec la commande

ls -l

Vous pouvez même aller plus loin, en lui demandant d'afficher tous les dossiers, y compris ceux qui sont invisibles

ls -la

Le résultat, sur mon Mac est

drwxr-xr-x   28 root  wheel   896 26 nov 14:49 .
drwxr-xr-x   28 root  wheel   896 26 nov 14:49 ..
-rw-rw-r--    1 root  admin  6148 26 nov 14:49 .DS_Store
d--x--x--x    9 root  wheel   288 20 nov 07:42 .DocumentRevisions-V100
drwxr-xr-x@   2 root  wheel    64  6 nov 20:54 .PKInstallSandboxManager-SystemSoftware
drwx------    5 root  wheel   160  3 nov 10:15 .Spotlight-V100
d-wx-wx-wt    2 root  wheel    64  3 nov 12:19 .Trashes
----------    1 root  admin     0 26 fév  2019 .file
drwx------  296 root  admin  9472 26 nov 13:21 .fseventsd
drwxr-xr-x    2 root  wheel    64  3 nov 15:29 .vol
drwxrwxr-x+ 105 root  admin  3360 22 nov 19:05 Applications
drwxr-xr-x+  66 root  wheel  2112  3 nov 15:35 Library
drwxr-xr-x    2 root  wheel    64 26 fév  2019 Network
drwxr-xr-x@   5 root  wheel   160 21 sep 03:36 System
drwxr-xr-x    7 root  admin   224  3 nov 15:29 Users
drwxr-xr-x+   9 root  wheel   288 26 nov 14:49 Volumes
drwxr-xr-x@  37 root  wheel  1184 21 sep 03:40 bin
drwxrwxr-t    2 root  admin    64  3 nov 15:29 cores
dr-xr-xr-x    3 root  wheel  5002 20 nov 07:42 dev
lrwxr-xr-x@   1 root  wheel    11  3 nov 15:28 etc -> private/etc
dr-xr-xr-x    2 root  wheel     1 26 nov 13:00 home
-rw-r--r--    1 root  wheel   313 31 mai 03:28 installer.failurerequests
dr-xr-xr-x    2 root  wheel     1 26 nov 13:00 net
drwxr-xr-x    6 root  wheel   192  3 nov 15:29 private
drwxr-xr-x@  64 root  wheel  2048  3 nov 15:28 sbin
lrwxr-xr-x@   1 root  wheel    11  3 nov 15:28 tmp -> private/tmp
drwxr-xr-x@   9 root  wheel   288 21 sep 03:32 usr
lrwxr-xr-x@   1 root  wheel    11  3 nov 15:28 var -> private/var

et cela devrait être sensiblement identique sur le votre.

Rapidement, comment lire cette liste ? La première colonne indique le type puis les droits associés au dossier ou au fichier. Dans cette colonne, la premiere lettre indique le type :

  • d : un dossier
  • l : un lien
  • - : un fichier

Il existe d'autres types, mais il y a peut de chance d'en rencontrer dans lors de notre progression dans l'article.

Il y a ensuite les droits, par 3 blocs de 3 lettres. Les 3 blocs représentent dans l'ordre :

  • le propriétaire
  • le groupe
  • les autres

Ce sont, finalement, les mêmes informations que l'on retrouve dans la boite "Lire les informations" de Finder.

Les 3 lettres indiquent :

  • r : Lecture autorisée
  • w : Ecriture autorisée
  • x : Exécution autorisée

Si les lettres sont remplacées par un - , c'est que le propriétaire, le groupe ou les autres ne possèdent pas ce droit.

La colonne suivante, est un numérique, indiquant le nombre de dossiers ou de liens présents à l'intérieur du dossier. Vous verrez que pour les fichiers, ou les liens, la valeur est toujours à 1, puisqu'il s'agit de l'élément lui-même.

Ensuite viennent le propriétaire, puis le groupe. A la racine, tous les dossiers et fichiers appartiennent à root, le super administrateur des systèmes Linux/UNIX dont macOS fait parti. Cependant, sur macOS, Apple fait tout pour le cacher, afin de conserver son côté "grand public". Il faut néanmoins savoir que vous pouvez y accéder.

Ainsi lorsque macOS vous demande votre mot de passe administrateur pour faire des modifications sur le Système ou la Bibliothèque, vous permettez en fait au logiciel en question d'accéder au dossier via un accès root.

De la même manière, lorsque vous taper la commande sudo, avant tout autre commande, cette dernière sera exécutée avec le compte root. Cela peut expliquer que vous copiez parfois un dossier avec sudo, sans en avoir les droits ensuite.

Vient ensuite la taille, qui, pour les dossiers n'est pas très intéressante, car elle n'indique pas la taille des éléments inclus. Cependant, elle peut être utile pour les fichiers. La taille donnée est en octets, pour les dossiers disposant de gros fichiers, il est conseillé d'ajouter le paramètre -h à la commande pour que les tailles soit affichées automatiquement en Ko, Mo, Go, ....

Par exemple

ls -lh

ou encore

ls -lah

Ensuite, c'est la date de dernière modification qui est indiquée. Si la date est récente, en particulier dans la même année, l'heure est affichée, sinon, nous avons le droit à l'année.

Enfin, le dernier, le nom du fichier, et pour les liens, la cible du lien.

La commande ls et quelques un de ses paramètres n'ont désormais plus de secrets pour vous.

 

Rentrons dans le vif du sujet avec la commande du

La commande du, pour Disk Usage, permet d'obtenir la taille des éléments présents dans un dossier.

Par défaut, elle va lister, et donner la taille de tous les éléments dans le dossier courant. Attention, si vous êtes toujours à la racine du disque, la lancer, peut prendre un certain moment, et le nombre de ligne généré deviendra rapidement illisible.

Donc, le plus important, pour commencer, est de savoir comment l'arrêter. Pour cela il suffit d'appuyer sur les 2 touches ctrl + C.

De plus, il faut savoir que la commande du ne peut accéder qu'aux éléments auxquels vous avez le droits. Et macOS, notamment dans les dossiers Système et Bibliothèque, contient de nombreux éléments auquel vous n'avez pas le droit. Cependant, il faut savoir que bien souvent, voir tout le temps, il s'agit de fichiers ou dossiers qui ne sont pas nécessairement lourds, mais surtout obligatoires pour le bon fonctionnement du système. Il n'est donc, en aucun cas, question de les supprimer.

Pour obtenir la somme de la taille des fichiers d'un dossier, sans forcément avoir le détails de tous les fichiers, il faut utiliser le paramètre -s.

Et puis comme, comme sur tout ordinateur moderne, on ne regarde plus les octets mais directement, les Mo, Go ou encore To, on va lui joindre le paramètre -h, qui réagit de la même manière qu'avec les commandes df et ls, à savoir donner une taille humainement lisible.

Par exemple, pour obtenir le poids total du dossier Applications qui se trouve à la racine, puisque nous y sommes toujours

du -hs Applications

Selon la taille du dossier, et surtout le nombre de fichiers qu'il contient, cela peut prendre du temps, notamment sur un disque dur classique. Avec un SSD, le résultat sera bien plus réactif.

30 secondes après avoir lancé la commande j'obtiens le résultat :

112G    Applications

Une taille plutôt conséquente pour un dossier Applications.

Il est possible d'obtenir la taille de tous les sous éléments de votre dossier courant

du -hs *

Attention, je vous déconseille de le faire sur le dossier racine, car cela ira chercher la taille de tous les dossiers présents sur le disque, mais aussi les disques durs ou réseaux attachés. En effet, les volumes externes sont liés dans le dossier /Volumes présent à la racine votre disque dur principal.

A la racine du disque, il est préférable d'utiliser la commande avec précaution, car, avec le nombre de fichiers présents sur le disque cela peut vite prendre de grandes proportions.

Vous pouvez cependant demander la taille de plusieurs dossiers, en les listant après la commande.

Par exemple, pour avoir la taille des dossiers Applications et Bibliothèque

du -hs Applications Library

Le résultat est

112G    Applications
du: Library/Application Support/Apple/ParentalControls/Users: Permission denied
du: Library/Application Support/Apple/AssetCache/Data: Permission denied
du: Library/Application Support/ApplePushService: Permission denied
du: Library/Application Support/com.apple.TCC: Operation not permitted
du: Library/SystemMigration/History/Migration-78687D49-DA8B-4666-B800-EDE2A10C42C9/QuarantineRoot/private/var/db/datadetectors: Permission denied
du: Library/Caches/Desktop Pictures/D9547101-AC4B-4A55-B12F-D5C7BD777EEB: Permission denied
du: Library/Caches/com.apple.iconservices.store: Permission denied
3,9G    Library

Comme vous pouvez le voir, je n'ai pas accès à certains fichiers, mais en passant par la commande sudo, et donc le super-utilisateur, je peux avoir accès à la taille globale, sans les erreurs

sudo du -hs Applications Library

Le terminal vous demandera votre mot de passe pour confirmer que vous êtes bien un administrateur du Mac.

112G    Applications
du: Library/Application Support/com.apple.TCC: Operation not permitted
4,1G    Library

Il reste un dossier que la commande n'arrive pas à accéder, cela est certainement du aux nombreuses protections ajoutées par Apple, pour éviter qu'un utilisateur mal-intentionné ne puisse modifier le système.

Cependant, nous pouvons voir que d'autres dossiers sont désormais inclut dans le calcul du poids, qui, pour le coup, a changé, en prenant 200 Mo supplémentaires.

Il est aussi possible d'utiliser le caractère wildcard "*" pour obtenir la taille de plusieurs dossiers dont le nom se ressemble. Par exemple pour obtenir la taille de tous les fichiers et dossiers invisibles présents à la racine (puisque nous n'avons toujours pas bougé), je demande la taille de tous les éléments qui commencent par un .

sudo du -hs .*

Le résultat est

8,0K    .DS_Store
 95M    .DocumentRevisions-V100
  0B    .PKInstallSandboxManager-SystemSoftware
du: .Spotlight-V100: Operation not permitted
  0B    .Trashes
  0B    .file
 21M    .fseventsd
  0B    .vol

Il y a encore une fois, il y a un dossier inaccessible. Mais il est tout de même possible d'obtenir la taille des autres éléments, qui sont vides ou peu volumineux.

Pour les plus fainéants, comme moi, il est possible d'ajouter le paramètre -c, qui ajoute la somme des éléments trouvés.

sudo du -chs .*

Une ligne est ajoutée à la fin, indiquant le grand total.

8,0K    .DS_Store
 95M    .DocumentRevisions-V100
  0B    .PKInstallSandboxManager-SystemSoftware
du: .Spotlight-V100: Operation not permitted
  0B    .Trashes
  0B    .file
 21M    .fseventsd
  0B    .vol
116M    total

Maintenant que vous connaissez les bases de la commande du, revenons sur une information donnée en début de chapitre. Je vous déconseillais de lancer la commande brute sur l'ensemble de votre disque, en particulier, à cause des disques durs et réseaux présents dans le dossier Volume.

Il est tout de même possible de lancer la commande en ajoutant le paramètre -x. Cette option permet de ne pas inclure les points de montage. Donc, si vous n'êtes pas pressé, vous pouvez tenter la commande

sudo du -cxhs *

 

Guide de bonne conduite lors du nettoyage de son disque.

Maintenant que nous savons comment connaitre la taille de nos dossiers, il suffit d'avancer et de visiter l'ensemble de son disque pour vérifier tous les dossiers qui nous paraissent trop gros.

Avant de supprimer sauvagement des dossiers, il faut s'imposer des règles simples.

Il est évident qu'il ne faut jamais supprimer un dossier dont vous vous servez. Le but est de gagner de la place, pas de vider vos dossiers de travail !

Moins évident, mais tout aussi important, il ne faut jamais supprimer un dossier dont on ne connait pas le but, même s'il s'agit d'un dossier se trouvant dans votre compte.

Ne pas perdre de temps à progresser dans les sous-dossiers d'un dossier qui n'est pas si volumineux que cela. Au pire, vous y reviendrez plus tard.

De la même manière si un dossier vous parait être à une grande taille, mais une taille logique, ne perdez pas de temps avec.

Le principe est ensuite simple, il faut parcourir le disque avec les commandes cd, ls  et du, pour identifier les dossiers qui prennent le plus de place. Vérifier leurs contenus, supprimer les éléments dont vous n'avez plus besoin, ou déplacer ceux qui pourraient être stockés ailleurs.

 

Quelques astuces pour économiser son disque dur.

Malgré ce que pense Apple, il est nécessaire de savoir qu'un disque dur dispose d'une certaine durée de vie. Qu'il s'agisse d'un disque à plateaux ou d'un SSD, il faut savoir que votre disque dur finira par mourrir un jour. Le disque dur est un consommable, qu'il est parfois nécessaire de remplacer.

Par exemple, dans le Mac Pro que j'utilise, le disque principal a été changé 2 fois, sur une période de 10 ans. Chaque disque aura donc tenu un peu moins de 3,5 ans. Alors certes, j'ai une utilisation "lourde", voir "très lourde" de mon Mac, mais il n'empêche que si le disque avait été soudé dans le Mac Pro, j'aurai été fort embêté.

Car, malheureusement, Apple, dans ses dernières machines, soude le disque dur dans le Mac. Cela est d'une hérésie sans nom, mais nous n'avons pas le choix, si l'on veut continuer à utiliser macOS, dans un Mac.

Il est donc nécessaire, d'une part, de faire des sauvegardes régulières de son disque dur, et pour cela, Apple fournit l'un des plus chouettes outils du marché avec TimeMachine. D'autre part, il est nécessaire d'économiser l'utilisation de son disque au strict minimum, d'autant plus lorsqu'il est soudé.

A noter que c'est l'écriture, bien plus que la lecture, qui est source du vieillissement des disques. Smartmontools est un outils dont je vous ai déjà parlé, et qui permet de contrôler l'état de ses disques.

D'un ordre général, je suggère toujours de déplacer les éléments volumineux et qui ne nécessitent pas un accès rapide depuis votre disque dur principal vers un disque dur externe. Cela vaut pour les jeux, il est très facile de mettre les jeux Steam sur un disque externe, soit en déplaçant sa bibliothèque depuis l'application, soit, si cela ne marche pas, en déplaçant manuellement ses jeux, puis en mettant un lien symbolique permettant de faire la passerelle.

L'Epic Game Launcher permet de faire la même chose, mais si le nombre de jeux disponibles pour Mac est moins conséquent. Battle.net, permet aussi de localiser ses jeux, et donc de les placer ailleurs que sur le disque principal.  Il faut savoir que les jeux sont parmi les éléments les plus volumineux que l'on peut trouver sur un ordinateur.

Vous pouvez faire de même avec vos médias de type films ou séries. Cela va prendre beaucoup de place, et il n'y a strictement aucune nécessité à les avoir sur le disque principal. De même pour les ROMs, pour les amateurs de retro-gaming.

Enfin, les programmes d'installation de macOS peuvent, eux aussi être déplacé sur un disque secondaire. Ce sont 4 à 6Go d'économisés à chaque fois.

Pour ma part, j'ai été encore plus loin, en déplaçant l'un des dossiers qui bougent le plus lors de l'utilisation de son Mac, le dossier Téléchargement, vers un autre disque. Les éléments présents sont ensuite rangés proprement lorsque c'est nécessaire.

Evidemment, il est ensuite nécessaire de se poser de la question la plus importante : Ai-je besoin de sauvegarder les données présentes sur ce disque ? Et oui, il est évident que ce disque peut lui aussi tomber en panne.

Les jeux peuvent être re-téléchargés, la plupart du temps. Il faut par contre, s'assurer que les parties sont bien sauvegardées, soit en ligne avec le cloud, soit manuellement.

Pour les films, comme pour les ROMs, c'est à vous de voir. Mais il est sûr les films persos doivent disposer d'une sauvegarde au risque de les perdre.

Pour un bon fonctionnement de son Mac, il est nécessaire de toujours avoir environ 20Go d'espace disque disponible. Ainsi macOS peut créer sa mémoire virtuelle sans problème, et il reste de la place pour le cache des différentes applications.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Les cookies assurent le bon fonctionnement de nos services. En continuant, vous acceptez leur utilisation sur notre site internet.
Accepter