Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/03/2024, à 10:14

GR 34

[RÉSOLU ] Script taille d'un dossier dans une variable à afficher

Bonjour,

Je veux récupérer la taille d'un dossier dans une variable que j'affiche par la suite en Mo avec ce code :

#!/bin/bash
echo "Entrez un chemin de dossier."
read file
file=$(echo $file | sed "s/'//g")
taille=$(du -s $file | awk '{print $1}')
((taille=$taille / 1024 | bc -l))
echo "$taille Mo"

Or sur un dossier donné echo "$taille  Mo" me donne : 2073 Mo mais les propriétés du gestionnaire de fichiers (Mate) me donne 2.2 Go.

Je ne comprends pas cette différence avec les arrondis je devrais obtenir 2.1 Go ou 2 Go, non ?

Dernière modification par GR 34 (Le 20/03/2024, à 16:00)


Karantez-vro...  Breizhad on ha lorc'h ennon !
«Les animaux sont mes amis. Et je ne mange pas mes amis.» George Bernard Shaw
https://www.l214.com/

Hors ligne

#2 Le 20/03/2024, à 13:36

nany

Re : [RÉSOLU ] Script taille d'un dossier dans une variable à afficher

Bonjour,



Diviser par 1024 donne des Mio, pas des Mo. tongue

Script modifié pour afficher des Mo :

#!/bin/bash
echo "Entrez un chemin de dossier."
read file
taille=$(du -bs "$file" | awk '{print $1}')
((taille="$taille" / 1000000))
echo "$taille Mo"

Hors ligne

#3 Le 20/03/2024, à 15:09

Watael

Re : [RÉSOLU ] Script taille d'un dossier dans une variable à afficher

du -bs "$file" | awk '{print $1/1000000,"Mo"}' -> echo "$(($(stat -c %s "$file")/1000000)) Mo"

sur un dossier donné echo "$taille  Mo" me donne : 2073 Mo

avec ((taille=$taille / 1024 | bc -l)) roll, ça m'étonnerait !

Dernière modification par Watael (Le 20/03/2024, à 15:10)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 20/03/2024, à 15:19

bruno

Re : [RÉSOLU ] Script taille d'un dossier dans une variable à afficher

Bah quitte à utiliser du, autant demander direct ment la taille en Mio wink

du -ms "$file"

Hors ligne

#5 Le 20/03/2024, à 15:58

GR 34

Re : [RÉSOLU ] Script taille d'un dossier dans une variable à afficher

Merci à vous 3.

Effectivement je me suis emmêlé les pinceaux entre Mio et Mo

Le code de nany me donne 2174Mo ce qui me paraît acceptable pour la valeur du gestionnaire de fichiers Mate à 2.2 Go qui doit arrondir (?). Je garde donc ce code.
Re-merci à nany.

Pour moi c'est résolu.


Karantez-vro...  Breizhad on ha lorc'h ennon !
«Les animaux sont mes amis. Et je ne mange pas mes amis.» George Bernard Shaw
https://www.l214.com/

Hors ligne

#6 Le 20/03/2024, à 16:01

nany

Re : [RÉSOLU ] Script taille d'un dossier dans une variable à afficher

Watael a écrit :

du -bs "$file" | awk '{print $1/1000000,"Mo"}' -> echo "$(($(stat -c %s "$file")/1000000)) Mo"

~$ stat -c %s /home/nany
4096
~$ du -bs /home/nany
1973441403	/home/nany
~$

 

bruno a écrit :

Bah quitte à utiliser du, autant demander direct ment la taille en Mio wink

Oui mais il veut des Mo.

Hors ligne

#7 Le 20/03/2024, à 16:14

Watael

Re : [RÉSOLU ] Script taille d'un dossier dans une variable à afficher

c'est la taille totale du contenu d'un dossier ! désolé, je n'ai lu que "$file". neutral
j'ai rien dit, alors. big_smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 20/03/2024, à 17:25

bruno

Re : [RÉSOLU ] Script taille d'un dossier dans une variable à afficher

nany a écrit :
bruno a écrit :

Bah quitte à utiliser du, autant demander direct ment la taille en Mio wink

Oui mais il veut des Mo.

Ce n'était pas clair pour moi…
De toute façon :

du -Ms dossier

équivalent à

du -s --block-size=1MiB dossier

donne la taille en Mio (MiB en anglais)
et

du -s --block-size=1MB dossier

donne la taille en Mo (MB en anglais)

Hors ligne