Finden Sie die Dateigröße in Bash
-
Verwenden Sie das Schlüsselwort
ls
, um die Dateigröße in Bash zu finden -
Verwenden Sie das Schlüsselwort
wc
, um die Dateigröße in Bash zu finden -
Verwenden Sie das Schlüsselwort
stat
, um die Dateigröße in Bash zu finden
Wenn Sie ein Bash-Skript erstellen, das Dateien von einem Speicherort an einen anderen übertragen kann, müssen Sie möglicherweise die Größe der Datei kennen, an der Sie arbeiten.
In einem Bash-Skript gibt es mehrere Möglichkeiten, die Größe einer Datei zu ermitteln. Dieser Artikel zeigt, wie man die Größe einer Datei über Bash ermittelt.
Wir werden hier drei verschiedene Methoden besprechen, und Sie können die perfekte Methode basierend auf Ihren Bedürfnissen auswählen. Außerdem werden wir notwendige Beispiele und Erklärungen sehen, um das Thema einfacher zu machen.
Verwenden Sie das Schlüsselwort ls
, um die Dateigröße in Bash zu finden
Wir können die Größe einer Datei ermitteln, indem wir einen eingebauten Befehl in Bash verwenden, der das Schlüsselwort ls
ist. Mit diesem Schlüsselwort können Sie die Größe einer Datei ermitteln, indem Sie dem folgenden Beispiel folgen:
ls -lh Test.txt | awk '{print $5}'
Nachdem Sie diesen Befehl ausgeführt haben, erhalten Sie eine Ausgabe wie die folgende:
99
Oben haben wir ein sehr einfaches Format dieser Methode geteilt. Im folgenden Beispiel zeigen wir eine organisierte Methode zum Ermitteln der Dateigröße.
Das aktualisierte Beispiel ist:
echo "Enter the directory or name of the file:"
read File
FileSize=$(ls -lh $File | awk '{print $5}')
echo "$File has a size of $FileSize"
Im obigen Beispiel nehmen wir den Dateinamen aus der Benutzereingabe und liefern dann die Dateigröße als Ausgabe.
Nachdem Sie dieses Beispiel ausgeführt haben, erhalten Sie die folgende Ausgabe:
Enter the directory or name of the file:
Test.txt
Test.txt has a size of 99
Verwenden Sie das Schlüsselwort wc
, um die Dateigröße in Bash zu finden
Ein weiteres in Bash verfügbares Schlüsselwort, mit dem Sie die Dateigröße ermitteln können, ist wc
. Diese einfachste Art, diesen Befehl zu verwenden, wird unten geteilt:
wc -c Test.txt
Nachdem Sie die obige Befehlszeile ausgeführt haben, erhalten Sie die folgende Ausgabe:
99 Test.txt
Jetzt werden wir ein fortgeschrittenes Beispiel vorstellen. In unserem Beispiel unten bieten wir Benutzern eine Option zur Auswahl des Dateigrößenformats.
Unser erweitertes Beispiel enthält die folgenden Codes.
echo "Select the FORMAT for the size:"
echo """
1. Bytes
2. KiloBytes
3. MegaBytes
4. GigaBytes
"""
echo "--------------------------------------------------------"
read FORMAT
echo "Provide the Filename or Directory: "
read FILE
FileSize=$(wc -c $FILE | awk '{print $1}')
if [[("$FORMAT" == 1)]];
then
echo "$FILE is approx $FileSize Bytes"
elif [[("$FORMAT" == 2)]];
then
kb=$(bc <<<"scale=3; $FileSize / 1024")
echo "$FILE is approximately $kb KB"
elif [[("$FORMAT" == 3)]];
then
mb=$(bc <<<"scale=6; $FileSize / 1048576")
echo "$FILE is approximately $mb MB"
elif [[("$FORMAT" == 4)]];
then
gb=$(bc <<<"scale=12; $FileSize / 1073741824")
echo "$FILE is approximately $gb GB"
else
echo "Incorrect FORMAT."
exit
fi
Im obigen Beispiel haben wir dem Benutzer zunächst eine Option bereitgestellt und die Benutzereingabe gelesen. Im nächsten Abschnitt haben wir die Benutzereingabe für den Dateinamen übernommen.
Anschließend haben wir die Dateigröße basierend auf der Benutzerauswahl konvertiert und das Ergebnis bereitgestellt.
Wenn Sie diesen Code ausführen, erhalten Sie die folgende Ausgabe:
Select the FORMAT for the size:
1. Bytes
2. KiloBytes
3. MegaBytes
4. GigaBytes
--------------------------------------------------------
1
Provide the Filename or Directory:
Test.txt
Test.txt is approx 99 Bytes
Verwenden Sie das Schlüsselwort stat
, um die Dateigröße in Bash zu finden
Unsere letzte Methode führt ein weiteres eingebautes Schlüsselwort in Bash ein, stat
. Dieses Schlüsselwort liefert hauptsächlich alle notwendigen Informationen in Bezug auf die Datei.
Der einfachste Weg, die Dateigröße zu finden, ist wie folgt:
stat Test.txt
Der oben geteilte einzeilige Befehl liefert Ihnen die Dateigröße und andere Details wie Name, Geburt usw. Sie erhalten die folgende Ausgabe, nachdem Sie den obigen Befehl ausgeführt haben:
File: Test.txt
Size: 99 Blocks: 0 IO Block: 4096 regular file
Device: 11h/17d Inode: 281474976715600 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ aminul) Gid: ( 1000/ aminul)
Access: 2022-08-04 14:57:18.556623600 +0600
Modify: 2022-08-04 14:45:27.259462300 +0600
Change: 2022-08-04 14:45:27.259462300 +0600
Birth: -
Das oben geteilte Beispiel enthält einige unnötige Informationen über die Datei. Aber im folgenden Beispiel können Sie diese eliminieren.
Unser nächster aktualisierter Code bezüglich dieser Methode lautet wie folgt:
echo "Enter the path or directory: "
read FilePath
FileSize=$(stat -c %s $FilePath)
echo "$FilePath is precise $FileSize bytes."
Nachdem Sie den obigen Beispielcode ausgeführt haben, erhalten Sie die folgende Ausgabe:
Enter the path or directory:
Test.txt
Test.txt is precise 99 bytes.
Bitte beachten Sie, dass der gesamte in diesem Artikel verwendete Code in Bash geschrieben ist. Es ist nur in der Linux-Shell-Umgebung lauffähig.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn