Disons que je veux obtenir la taille de chaque répertoire d'un système de fichiers Linux. Lorsque je l'utilise, ls -la
je ne reçois pas vraiment la taille récapitulative des dossiers.
Si j’utilise, df
j’obtiens la taille de chaque système de fichiers monté, mais cela ne m’aide pas non plus. Et avec du
je reçois la taille de chaque sous-répertoire et le résumé de tout le système de fichiers.
Mais je veux avoir seulement la taille résumée de chaque répertoire dans le dossier ROOT du système de fichiers. Y a-t-il un commandement pour y parvenir?
--total
drapeau m'a été utile. Par exempledu -sh --total applications/*
. askubuntu.com/a/465436/48214Réponses:
Cela fait ce que vous cherchez:
Qu'est-ce que cela signifie:
-s
pour ne donner que le total pour chaque argument de ligne de commande.-h
pour les suffixes lisibles par l’homme commeM
pour les mégaoctets et lesG
gigaoctets (facultatif)./*
étend simplement à tous les répertoires (et fichiers) dans/
.Remarque: les fichiers de points ne sont pas inclus. courir
shopt -s dotglob
pour inclure ceux aussi.Le tri par taille est également utile:
Ici:
-h
veille à ce quesort
le suffixe lisible par l'homme soit interprété correctement.la source
shopt -s dotglob
inclure dans le nombre./*
, par exemple./
pour le répertoire en cours ou./*
pour chaque élément du répertoire en cours../*/
pour obtenir uniquement les sous-dossiers et pas tous les élémentsdu -sh /* | sort -h
sort
n'en avez pas-h
, vous devez le laisserdu
aussi, sinon le tri va mélanger kilo / méga / gigaoctet.du -s /* | sort -nr
.J'ai souvent besoin de trouver les plus gros répertoires, donc pour obtenir une liste triée contenant les 20 plus grands répertoires, je fais ceci:
Dans ce cas, les tailles seront indiquées en mégaoctets.
la source
J'aime utiliser Ncdu pour cela, vous pouvez utiliser le curseur pour naviguer dans la structure de répertoires, cela fonctionne vraiment bien.
la source
b
pour déposer dans un shell dans le répertoire.Les réponses existantes sont très utiles, peut-être que certains débutants (comme moi) le trouveront également utile.
Boucle très basique, mais pour moi, c'était un bon début pour d'autres opérations liées à la taille:
Très similaire à la première réponse et presque le même résultat que 1.), mais il m'a fallu un certain temps pour comprendre la différence de * à ./* si dans un sous-répertoire:
la source
for each
ne fonctionne pas car il ajoute des caractères de console (par exemple\033[
) à la liste des dossiersfor each
. ça ne marchera pasL'
du
invocation suivante devrait fonctionner sur les systèmes BSD:la source
du
(Ubuntu 10.4) n'a pas d'-d
option. Vous êtes sur quel système?du -sk /*
. Je déteste-k
tellement ce genre de choses. Linux 'est-h
totalement rock.--max-depth
Ce n'est pas facile La
du
commande affiche les fichiers et les dossiers (par défaut) ou uniquement la taille de tous les éléments que vous spécifiez sur la ligne de commande (option-s
).Pour obtenir les éléments les plus volumineux (fichiers et dossiers), triés, avec des tailles lisibles par l'homme sous Linux:
Cela vous enterrera dans une tonne de petits fichiers. Vous pouvez vous en débarrasser avec
--threshold
(1 Mo dans mon exemple):L'avantage de cette commande est qu'elle inclut des dossiers à points cachés (les dossiers qui commencent par
.
).Si vous ne voulez que les dossiers, vous devez les utiliser,
find
mais cela peut être très lent, car vousdu
devrez analyser plusieurs dossiers plusieurs fois:la source
Sachez que vous ne pouvez pas comparer des répertoires avec
du
différents systèmes / machines sans vous en assurer, les deux partagent la même taille de bloc du système de fichiers. Cela pourrait compter si vous synchronisez certains fichiers d'une machine Linux sur un NAS et que vous souhaitez comparer le répertoire synchronisé vous-même. Vous pourriez obtenir des résultats différents endu
raison de différentes tailles de blocs ....la source
Vous pouvez également vouloir vérifier xdiskusage . Vous donnera les mêmes informations, mais montrées graphiquement, plus vous permet d’avancer dans le détail (très utile) Il existe d'autres utilitaires similaires pour KDE et même Windows.
la source
Vous pouvez utiliser
ls
en conjonction avecawk
:La sortie de
ls
est raccordée àawk
.awk
commence à traiter les données. Le délimiteur standard est l’espace. La variable sommetot
est initialisée à zéro; L'instruction suivante est exécutée pour chaque ligne / ligne générée parls
. Il augmente simplementtot
avec la taille.$5
représente la cinquième colonne (sortie parls
). À la fin, nous divisons par (1024 * 1024) pour totaliser en mégaoctets.Si vous voulez convertir cela en un script ou une fonction (.bashrc), vous pouvez également l'utiliser pour obtenir la taille de certains sous-ensembles de répertoires, en fonction des types de fichiers.
Si vous voulez des informations à l’échelle du système,
kdirstat
peut - être utile!la source