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:
Répertoire principal:
|- sub_lvl_2_A
|- sub_lvl_3_A
|- sub_lvl_2_B
|- sub_lvl_3_B
|- sub_lvl_3_C
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.