Passer -s
à du
limitera la sortie aux seuls éléments spécifiés sur la ligne de commande.
du -sh ~
Du ne vous montrera que les totaux par dossier, pas par utilisateur.
Cela pourrait fonctionner si vous voulez la taille totale de, disons, /home/example_user/
et si seulement cet example_user a des fichiers dans ce dossier. Si d'autres utilisateurs ont des fichiers en eux, cela ne donnera pas la taille de tous les fichiers que vous possédez, mais la taille totale de tous les fichiers de ce dossier.
Pour obtenir les informations par utilisateur, vous pouvez :
- Si vous avez activé les quotas, utilisez ces commandes.
- Utilisez find pour parcourir tous les répertoires dans lesquels vous souhaitez compter vos fichiers. Utilisez uid pour sélectionner uniquement vos fichiers et conservez un tableau associatif dans awk pour compter les totaux.
find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'
- La première commande recherche tous les fichiers et répertoires dans
/path/to/search/
. -type f
s'assure que vous ne sélectionnez que des fichiers, sinon vous comptez également la taille des répertoires. (Essayez de créer un dossier vide. Il utilisera probablement 4k d'espace disque).-user username_whos_files_to_count
ne sélectionne que les résultats d'un seul utilisateur-printf "%s\n"
imprimera la taille.
Si vous exécutez simplement la première partie de ceci, vous obtiendrez une liste de nombres. Ce sont les tailles de fichiers. (Tout le reste est supprimé, seule la taille est imprimée grâce à la commande d'impression %s.)
Nous pouvons ensuite additionner tous ces chiffres pour obtenir un résumé. Dans l'exemple, cela se fait avec awk.
Pour trouver toutes les utilisations par un utilisateur spécifique, une bonne commande est :
find -user $USER -type f -exec du -chs {} +
Vous pouvez encore modifier en fonction des besoins spécifiques, par exemple je veux souvent résumer l'utilisation par dossier, et ce qui suit fonctionne bien :
find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +
Cela ne trouve que les répertoires d'un seul niveau, limite par utilisateur, exclut le répertoire parent et imprime chaque répertoire et un résumé à la fin.