Comment obtenir la taille d'un fichier dans un script bash

Comment obtenir la taille d'un fichier dans un script bash
Lors de l'écriture de scripts de coquille, nous pouvons rencontrer une situation où nous devons connaître la taille d'un fichier. Par exemple, vous devrez peut-être utiliser cette taille pour effectuer d'autres actions, telles que le déplacement du fichier vers un autre répertoire ou le supprimer.

Ce didacticiel discutera des méthodes rapides que vous pouvez utiliser dans un script bash pour obtenir la taille du fichier dans le format spécifié tels que les octets, les kilo-giéristes, les mégaoctets ou les gigaoctets.

Méthode 1: la commande LS

La première méthode consiste à utiliser la bonne vieille commande LS. Lorsqu'il est associé à d'autres commandes, la commande LS peut saisir la taille d'un fichier.

Pour implémenter le script, nous avons besoin du chemin complet du fichier, énumérez les informations du fichier avec LS et saisissez la taille à l'aide d'une commande telle que AWK.

Un exemple de script pour cela ressemblerait à ceci:

#!/ bac / bash
Echo "Entrez le chemin complet du fichier."
Lire le fichier
fileSize = $ (ls -lh $ file | awk 'print $ 5')
Echo "Le fichier $ a une taille de fichiers $"

Le script ci-dessus est relativement simple. En utilisant la commande Echo and Lire, nous obtenons le nom du chemin complet du fichier.

Ensuite, nous utilisons la commande ls -lh pour répertorier tous les répertoires et la taille au format lisible par l'homme, et enfin, passer la sortie à awk et saisir la taille comme le 5e variable.

Ce qui suit est une illustration du script.

chmod + x taille.shot
./taille.shot

Voici la sortie pour cela:

Sudo ./taille.shot
Entrez le chemin complet du fichier
/ etc / passwd
/ etc / passwd a une taille de 2.9K

Méthode 2: la commande wc

Une autre méthode que nous pouvons utiliser pour saisir la taille d'un fichier dans un script bash est la commande wc. La commande WC renvoie le nombre de mots, la taille et la taille d'un fichier en octets.

Maintenant:

Comme vous le savez, la lecture de la taille du fichier en octets n'est pas très facile. Pour contrer cela, nous pouvons implémenter un menu simple et demander à l'utilisateur le format de taille tel que KB, MB et GB.

Selon le format sélectionné, nous convertirons les octets audit format.

Voici un exemple de script pour implémenter une telle logique:

#!/ bac / bash
Echo "Sélectionnez le format de taille, utilisez des valeurs numériques (1 pour les octets, 2 pour les kilo-kilo-gestes, etc.) "
écho """
1. Octets
2. Kilobytes
3. Mégaoctets
4. Gigaoctets
"" "
écho "************************************************ ********************** ""
format de lecture
Echo "Entrez le chemin complet du fichier cible:"
Lire le fichier
fileSize = $ (wc -c $ file | awk 'print $ 1')
si [[("$ format" == 1)]];
alors
ECHO "Le fichier $ est d'environ $
elif [[("$ format" == 2)]];
alors
kb = $ (BC <<<"scale=3; $filesize / 1024")
ECHO "Le fichier $ est environ $ kb kb"
elif [[("$ format" == 3)]];
alors
MB = $ (BC <<<"scale=6; $filesize / 1048576")
ECHO "Le fichier $ est environ $ MB MB"
elif [[("$ format" == 4)]];
alors
gb = $ (BC <<<"scale=12; $filesize / 1073741824")
Echo "Le fichier $ est environ $ gb gb"
autre
écho "format incorrect."
sortie
Fi

Dans le script ci-dessus, nous commençons par demander à l'utilisateur de saisir le format de taille de fichier. Bash lit cette entrée et la stocke à la variable de format.

Ensuite, nous demandons l'utilisateur pour le chemin du fichier et stockons cette variable dans un fichier.

L'étape suivante appelle la commande WC -C sur le fichier spécifié. Étant donné que WC -C renvoie la taille du fichier en octets et le chemin du fichier, nous utilisons AWK pour saisir uniquement la taille du fichier. Nous stockons la taille en octets sous forme de fichiers.

Enfin, nous mettons en œuvre une instruction IF simple pour vérifier si le format de taille est soit 1 (octets), 2 (kilobytes), 3 (mégaoctets), 4 (gigaoctets). Nous utilisons ensuite la commande BC pour convertir la taille du fichier en octets au format spécifié.

NOTE: Nous utilisons une échelle de variation pour la commande BC pour accueillir le nombre de décimales par évaluation.

L'image ci-dessous montre comment fonctionne le script.

Une autre note: Le script ci-dessus est pur aux nombres et est donc ouvert à des améliorations significatives. N'hésitez pas à l'améliorer et à le modifier à vos besoins.

Méthode 3: Utilisation de la commande stat

Nous ne pouvons pas oublier la commande stat. À l'aide de la commande stat, nous pouvons afficher des informations détaillées sur un fichier ou le système de fichiers.

La commande stat renvoie également la taille en octets. Vous pouvez utiliser une logique similaire dans le script ci-dessus pour sélectionner le format.

Voici un script simple utilisant la commande stat:

#!/ bac / bash
Echo "Entrez le chemin du fichier."
Lire le fichier
FileSize = ”$ (STAT -C% S $ Fichier)
ECHO "Le fichier $ est précis."

De clôture

Ce tutoriel a discuté de trois méthodes que vous pouvez utiliser pour obtenir la taille d'un fichier à l'aide d'un script bash. Il est bon de noter que Linux a une collection complète d'outils et de méthodes pour y parvenir. Trouvez celui qui fonctionne pour vous et respectez-le.