Lister tous les répertoires et trier par taille
Bien que les jours d'espace mémoire limité sur le disque dur semblent révolus, des disques durs pour stocker des données de grande taille sont aujourd'hui disponibles à un prix abordable. Cependant, si vous sentez que vous n'avez pas besoin d'un disque dur de plus grande capacité et que votre disque dur est plein, cela peut indiquer que vous avez beaucoup de données indésirables stockées sur votre système. C'est exactement mon cas et j'ai besoin de nettoyer régulièrement. Je préfère supprimer les données en fonction de la taille, donc commencer par le plus grand répertoire de mon répertoire personnel est la première étape.
Voici quelques commandes bash que j'utilise pour ma routine de nettoyage des données:
Liste tous les répertoires et fichiers de taille appropriée
Cette commande répertorie uniquement les fichiers et répertoires de votre répertoire de travail actuel. Supprimez l'option -s pour afficher une sortie récursive. -h représente une sortie lisible par l'homme.
$ du -sh *
Lister tous les répertoires et trier par taille
La commande précédente n'est pas très utile car elle ne trie pas et imprime de nombreux fichiers inutiles qui ne nous intéressent pas. La commande linux suivante imprime tous les répertoires du répertoire de travail actuel, inclut la taille appropriée en Mo et trie du plus grand au plus petit.
$ du -m --max-depth 1 | sort -rn
Répertorier le TOP 10 par taille
Notre journée de nettoyage des données ma fin en nettoyant les 10 premiers répertoires les plus importants que nous trouvons. Nous ne pouvons donc être intéressés que par les plus gros répertoires. Pour trouver quelles sont celles-ci, utilisons une commande précédente et incluons head:
$ du -m --max-depth 1 | sort -rn | head -11
Lister tous les répertoires et trier par taille le script bash
En utilisant la commande ci-dessus, nous pouvons créer un script bash pour nous faciliter la vie. Le script bash suivant acceptera 2 arguments. Le premier argument sera un nom de répertoire dans lequel nous commencerons notre recherche et le second argument sera par un certain nombre de répertoires que le script devrait produire.
#!/bin/bash if [ $# != 2 ]; then echo "Incorrect number of arguments !" >&2 echo "USAGE: sortdirbysize [DIRECTORY] " fi du --block-size=1M --max-depth 1 $1 | sort -rn | head -$2
Exemple:
$ ./sort-dir-by-size.sh /home/linux 15