J'essaie d'écrire un script qui calculera la taille d'un répertoire et si la taille est inférieure à 10 Go, et supérieure à 2 Go, effectuez une action. Où dois-je mentionner le nom de mon dossier?
# 10GB
SIZE="1074747474"
# check the current size
CHECK="`du /data/sflow_log/`"
if [ "$CHECK" -gt "$SIZE" ]; then
echo "DONE"
fi
du
et comment tout le monde connaît toutes ces commandes: vous pouvez taperman du
dans votre terminal pour rechercher la commande du dans le manuel. Cela affichera une sortie que vous pouvez afficher et résumera tous les indicateurs tels que -h, -c, -s, -b, -B, --apparent-size, etc. que les réponses suggèrent-vous d'utiliser. Ensuite, vous pouvez décider vous-même de la meilleure façon d'utiliserdu
votre cas d'utilisation spécifique.Réponses:
Tu peux faire:
qui vous donnera la taille de votre répertoire cible.
Si vous voulez une brève sortie,
du -hcs your_directory
c'est sympa.la source
du -hs
==du -hs .
.du | sort -n
ildu -hcs dir_name/*
inclut les soussi vous voulez juste voir la taille du dossier et non les sous-dossiers, vous pouvez utiliser:
Mettre à jour:
Vous devez savoir que cela
du
montre l'espace disque utilisé; et non la taille du fichier.Vous pouvez utiliser
--apparent-size
si vous voulez voir la somme des tailles de fichier réelles.Et bien sûr, il n'y a pas besoin d'
-h
option (lisible par l'homme) dans un script.Au lieu de cela, vous pouvez utiliser
-b
pour une comparaison plus facile à l'intérieur du script.Mais vous devez noter que cela
-b
s'applique--apparent-size
par lui-même. Et ce n'est peut-être pas ce dont vous avez besoin.donc je pense que vous devriez utiliser
--block-size
ou-B
la source
Utilisez un résumé (
-s
) et des octets (-b
). Vous pouvez couper le premier champ du résumé aveccut
. Mettre tous ensemble:la source
Pour juste obtenir la taille du répertoire, rien de plus:
la sortie ressemble
la source
--max-depth
est très utile pour contrôler utilement la sortie! par exemple, pour avoir une bonne idée de ce qui se passe dans un répertoire:du -h --max-depth=1
Pour vérifier la taille de tous les répertoires d'un répertoire, vous pouvez utiliser:
du -h --max-depth=1
la source
du -h -d 1
sur android.du -h -d 1
sur OSXsi vous voulez juste voir la taille globale du dossier et probablement au format MB ou GB, essayez le script ci-dessous
la source
-g
pour les décomptes-m
de 1 Go et pour les décomptes de 1 Mo. viaman du
la source
Si cela peut vous aider, vous pouvez également créer un alias dans votre
.bashrc
ou.bash_profile
.Cela affiche la taille du répertoire actuel ou du répertoire que vous avez passé en argument.
la source