Finden Sie die Dateigröße in Bash

MD Aminul Islam 20 Juni 2023
  1. Verwenden Sie das Schlüsselwort ls, um die Dateigröße in Bash zu finden
  2. Verwenden Sie das Schlüsselwort wc, um die Dateigröße in Bash zu finden
  3. Verwenden Sie das Schlüsselwort stat, um die Dateigröße in Bash zu finden
Finden Sie die Dateigröße in Bash

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.

MD Aminul Islam avatar MD Aminul Islam avatar

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

Verwandter Artikel - Bash File