So erhalten Sie die Größe einer Datei in einem Bash -Skript

So erhalten Sie die Größe einer Datei in einem Bash -Skript
Beim Schreiben von Shell -Skripten können wir auf eine Situation stoßen, in der wir die Größe einer Datei kennen müssen. Sie müssen beispielsweise diese Größe verwenden, um andere Aktionen auszuführen, z. B. das Verschieben der Datei in ein anderes Verzeichnis oder das Löschen.

In diesem Tutorial können Sie schnelle Methoden besprechen, die Sie in einem Bash -Skript verwenden können, um die Dateigröße im angegebenen Format wie Bytes, Kilobytes, Megabyte oder Gigabyte zu erhalten.

Methode 1: Der LS -Befehl

Die erste Methode ist die Verwendung des guten alten LS -Befehls. In Kombination mit anderen Befehlen kann der Befehl LS die Größe einer Datei erfassen.

Um das Skript zu implementieren, benötigen wir den vollständigen Pfad der Datei, die Dateiinformationen mit LS auflisten und die Größe mit einem Befehl wie awk greifen.

Ein Beispielskript dafür würde so aussehen:

#!/Bin/Bash
Echo "Geben Sie den vollständigen Pfad zur Datei ein."
Datei lesen
FileSize = $ (ls -lh $ file | awk 'drucken $ 5')
echo "$ file hat eine Größe von $ filesize"

Das obige Skript ist relativ einfach. Mit dem Befehl Echo and Read erhalten wir den Namen des vollständigen Pfades der Datei.

Als Nächstth Variable.

Das Folgende ist eine Darstellung des Skripts.

Chmod +x Größe.Sch
./Größe.Sch

Hier ist die Ausgabe dafür:

sudo ./Größe.Sch
Geben Sie den vollständigen Pfad zur Datei ein
/etc/passwd
/etc/passwd hat eine Größe von 2.9k

Methode 2: Der WC -Befehl

Eine andere Methode, mit der wir die Größe einer Datei in einem Bash -Skript erfassen können, ist der Befehl WC. Der WC -Befehl gibt die Anzahl der Wörter, Größe und die Größe einer Datei in Bytes zurück.

Jetzt:

Wie Sie wissen, ist das Lesen der Dateigröße in Bytes nicht sehr einfach. Um dem entgegenzuwirken, können wir ein einfaches Menü implementieren und dem Benutzer das Größenformat wie KB, MB und GB fragen.

Abhängig vom ausgewählten Format werden wir die Bytes in das Format umwandeln.

Hier ist ein Beispielskript, um eine solche Logik zu implementieren:

#!/Bin/Bash
Echo "Größenformat auswählen, numerische Werte verwenden (1 für Bytes, 2 für Kilobytes usw.) "
echo "" ""
1. Bytes
2. Kilobytes
3. Megabyte
4. Gigabyte
"" "
Echo "************************************************************************** ********************** "
Format lesen
Echo "Geben Sie den vollständigen Pfad zur Zieldatei ein:"
Datei lesen
FileSize = $ (WC -c $ Datei | awk 'print $ 1')
if [[("$ format" == 1)];
Dann
echo "$ file ist ca. $ filesize Bytes"
ELIF [[("$ format" == 2)];
Dann
KB = $ (BC <<<"scale=3; $filesize / 1024")
echo "$ file ist ungefähr $ kb kb"
ELIF [[("$ format" == 3)];
Dann
mb = $ (bc <<<"scale=6; $filesize / 1048576")
echo "$ file ist ungefähr $ mb mb"
elif [[("$ format" == 4)];
Dann
gb = $ (bc <<<"scale=12; $filesize / 1073741824")
echo "$ file ist ungefähr $ gb gb"
anders
echo "falsches Format echo."
Ausfahrt
fi

Im obigen Skript bitten wir den Benutzer, das Dateigrößenformat einzugeben. Bash liest diesen Eingang und speichert sie in der Formatvariablen.

Als nächstes fordern wir den Benutzer für den Dateipfad auf und speichern diese Variable in einer Datei.

Der nächste Schritt ruft den WC -Command in der angegebenen Datei auf. Da WC -c die Dateigröße in Bytes und den Pfad der Datei zurückgibt, verwenden wir awk, um nur die Dateigröße zu greifen. Wir speichern die Größe in Bytes als Dateigröße.

Schließlich implementieren wir eine einfache If -Anweisung, um zu überprüfen, ob das Größenformat entweder 1 (Bytes), 2 (Kilobytes), 3 (Megabyte), 4 (Gigabyte) ist, beträgt. Wir verwenden dann den Befehl BC, um die Dateigröße in Bytes in das angegebene Format umzuwandeln.

NOTIZ: Wir verwenden eine Variationsskala für den BC -Befehl, um die Anzahl der Dezimalstellen pro Evaluierung anzupassen.

Das Bild unten zeigt, wie das Skript funktioniert.

Ein weiterer Hinweis: Das obige Skript ist reine Barebone und ist daher offen für signifikante Verbesserungen. Fühlen Sie sich frei, es zu verbessern und Ihre Bedürfnisse zu optimieren.

Methode 3: Verwenden des STAT -Befehls

Wir können den STAT -Befehl nicht vergessen. Mit dem Befehl STAT können wir detaillierte Informationen zu einer Datei oder dem Dateisystem anzeigen.

Der STAT -Befehl gibt auch die Größe in Bytes zurück. Sie können eine ähnliche Logik im obigen Skript verwenden, um das Format auszuwählen.

Hier ist ein einfaches Skript mit dem STAT -Befehl:

#!/Bin/Bash
Echo "Geben Sie den Dateipfad ein."
Datei lesen
FileSize = ”$ (STAT -C %S $ Datei)
Echo "$ file ist präzise $ filesize Bytes."

Abschließend

In diesem Tutorial werden drei Methoden erörtert, mit denen Sie die Größe einer Datei mithilfe eines Bash -Skripts erhalten können. Es ist gut zu beachten, dass Linux eine umfassende Sammlung von Tools und Methoden hat, um dies zu erreichen. Finden Sie den, der für Sie funktioniert, und bleiben Sie dabei.