web-dev-qa-db-fra.com

Afficher l'utilisateur et les dossiers pour l'utilisation du disque

J'essaie de lister à partir des serveurs et je me demandais s'il était possible de le faire avec n'importe quel codage de terminal (dans lequel je suis assez faible pour le moment)

Par exemple, dans le répertoire principal, il y a des tonnes de sous-dossiers (niveau 2) et à l'intérieur de ceux-ci, il y a aussi des tonnes de sous-dossiers (niveau 3?)

En tant que tel, je me demandais si le codage normal dans le terminal me donnerait:

  • quel utilisateur occupe le plus d'espace (niveau 3 de profondeur), tout en affichant également les dossiers
  • le top 10 des personnes occupant le plus d'espace (niveau 2)

Répertoire principal:

|- sub_lvl_2_A
    |- sub_lvl_3_A
|- sub_lvl_2_B
    |- sub_lvl_3_B
    |- sub_lvl_3_C
1
xenas

La commande du trouve de manière récursive la taille estimée des répertoires. Cependant, il ne triera pas la sortie par taille.

(Vous devez être root pour que cela fonctionne)

Vraiment, vous modifiez simplement l'argument en son option -d (profondeur maximale):

Pour imprimer la taille du répertoire de base de chaque utilisateur dans l'ordre décroissant, procédez comme suit:

Sudo du -d 1 /home | sort -gr

Pour imprimer la taille des dossiers dans le répertoire de base de chaque utilisateur (niveau 3) (attention, il doit être très long, il peut être utile de le diriger vers less):

Sudo du -d 2 /home

(si la sortie est longue):

Sudo du -d 2 /home | less

Si vous souhaitez trier les sous-répertoires de chaque utilisateur par taille, vous devez exécuter du individuellement pour chaque utilisateur:

Sudo du -d 1 ~user1 | sort -gr
Sudo du -d 1 ~user2 | sort -gr

...etc.

Si vous souhaitez travailler à partir d'un point de départ différent, remplacez simplement le dernier argument de du (/home ci-dessus) par le répertoire dans lequel vous souhaitez travailler. Changer l'argument en -d changera le nombre de niveaux par lesquels il récursera.

2
hal7df