Android

Comment obtenir la taille d'un répertoire sous Linux

Comment lister tous les fichiers d'un dossier dans un fichier texte

Comment lister tous les fichiers d'un dossier dans un fichier texte

Table des matières:

Anonim

Lorsque vous répertoriez le contenu d'un répertoire à l'aide de la commande ls , vous avez peut-être remarqué que la taille des répertoires est presque toujours de 4096 octets (4 Ko). C'est la taille de l'espace sur le disque qui est utilisée pour stocker les méta-informations pour le répertoire, pas ce qu'il contient.

La commande que vous voudrez utiliser pour obtenir la taille réelle d'un répertoire est du , qui est l'abréviation de «utilisation du disque».

Obtenir la taille d'un répertoire

La commande du affiche la quantité d'espace fichier utilisée par les fichiers ou répertoires spécifiés. Si le chemin spécifié est un répertoire, du résume l'utilisation du disque de chaque sous-répertoire de ce répertoire. Si aucun chemin n'est spécifié, du signale l'utilisation du disque du répertoire de travail actuel.

Lorsqu'il est appelé sans aucune option, du affiche l'utilisation du disque du répertoire donné et de chacun de ses sous-répertoires en octets.

En règle générale, vous souhaitez afficher l'espace occupé par le répertoire dans un format lisible par l'homme. Par exemple, pour obtenir la taille totale du répertoire /var , vous devez exécuter la commande suivante:

sudo du -sh /var

La sortie ressemblera à ceci:

85G /var

Expliquons la commande et ses arguments:

  • La commande commence par sudo car la plupart des fichiers et répertoires du répertoire /var appartiennent à l'utilisateur root et ne sont pas lisibles par les utilisateurs réguliers. Si vous omettez sudo la commande du affichera «du: ne peut pas lire le répertoire». s - Affiche uniquement la taille totale du répertoire spécifié, n'affiche pas les totaux de taille de fichier pour les sous-répertoires. h - Tailles d'impression dans un format lisible par l'homme ( h ). /var - Le chemin du répertoire dont vous souhaitez obtenir la taille.

Que faire si vous souhaitez afficher l'utilisation du disque des sous-répertoires de premier niveau? Vous avez deux options. La première consiste à utiliser le symbole astérisque ( * ) comme indiqué ci-dessous, ce qui signifie «faire correspondre tout ce qui ne commence pas par un point ( . )». L'option -c indique à du d'imprimer un grand total de toutes les tailles:

sudo du -shc /var/*

24K /var/db 4.0K /var/empty 4.0K /var/games 77G /var/lib 4.0K /var/local 0 /var/lock 3.3G /var/log 0 /var/mail 4.0K /var/opt 0 /var/run 196K /var/spool 28K /var/tmp 85G total

Une autre façon d'obtenir un rapport sur l'utilisation du disque des sous-répertoires de premier niveau consiste à utiliser l'option --max-depth :

sudo du -h --max-depth=1 /var

77G /var/lib 24K /var/db 4.0K /var/empty 4.0K /var/local 4.0K /var/opt 196K /var/spool 4.0K /var/games 3.3G /var/log 5.0G /var/cache 28K /var/tmp 85G /var 85G total

Par défaut, la commande du affiche l'espace disque utilisé par le répertoire ou le fichier. Pour trouver la taille apparente d'un répertoire, utilisez l'option --apparent-size . La «taille apparente» d'un fichier est la quantité de données réellement présentes dans le fichier.

sudo du -sh --apparent-size /var

Lorsque vous transférez un répertoire via SCP, Rsync. Ou SFTP, la quantité de données transférées sur le réseau est la taille apparente des fichiers. C'est pourquoi la taille de l'espace sur le disque utilisé sur la source lorsqu'il est affiché avec du (sans --apparent-size ) n'est pas la même que la taille sur la cible.

La commande du peut également être combinée avec d'autres commandes avec des tuyaux.

Par exemple, pour imprimer les 5 plus grands répertoires du répertoire /var , vous dirigeriez la sortie de du vers la commande sort pour trier les répertoires selon leur taille, puis head la sortie vers la commande head qui imprimera uniquement les 5 premiers répertoires:

sudo du -h /var/ | sort -rh | head -5

85G /var/ 77G /var/lib 75G /var/lib/libvirt/images 75G /var/lib/libvirt 5.0G /var/cache/pacman/pkg

Conclusion

Sous Linux, vous pouvez obtenir la taille d'un répertoire en utilisant la commande du .

du terminal disk