W tym samouczku omówi szybkie metody, które można użyć w skrypcie bash, aby uzyskać rozmiar pliku w określonym formacie, takim jak bajty, kilobajty, megabajty lub gigabajty.
Metoda 1: polecenie LS
Pierwszą metodą jest użycie starego dobrego polecenia LS. W połączeniu z innymi poleceniami polecenie LS może pobrać rozmiar pliku.
Aby zaimplementować skrypt, potrzebujemy pełnej ścieżki pliku, wymieniaj informacje o pliku za pomocą LS i pobierać rozmiar za pomocą polecenia takiego jak AWK.
Przykładowy skrypt byłby tak:
#!/bin/bash
echo „Wprowadź pełną ścieżkę do pliku."
Przeczytaj plik
filesize = $ (ls -lh $ plik | awk 'print 5 $')
echo „plik $ ma rozmiar $ filize”
Powyższy skrypt jest stosunkowo prosty. Korzystając z polecenia Echo i Read, otrzymujemy nazwę pełnej ścieżki pliku.
Następnie używamy polecenia LS -LH, aby wymienić wszystkie katalogi i rozmiar w formacie czytelnym człowieka, a na koniec przekazuj wyjście do AWK i chwyć rozmiar jako 5th zmienny.
Poniżej znajduje się ilustracja skryptu.
rozmiar chmod +x.ciiOto dane wyjściowe:
sudo ./rozmiar.ciiMetoda 2: polecenie WC
Inną metodą, której możemy użyć do pobrania rozmiaru pliku w skrypcie Bash, jest polecenie WC. Polecenie WC zwraca liczbę słów, rozmiar i rozmiar pliku w bajtach.
Teraz:
Jak wiecie, odczytanie rozmiaru pliku w bajtach nie jest bardzo łatwe. Aby to przeciwdziałać, możemy zaimplementować proste menu i zapytać użytkownika o format rozmiaru, taki jak KB, MB i GB.
W zależności od wybranego formatu przekonwertujemy bajty na wspomniany format.
Oto przykład skryptu do wdrożenia takiej logiki:
#!/bin/bash
echo "Wybierz format rozmiaru, użyj wartości numerycznych (1 dla bajtów, 2 dla kilobajtów itp.) ”
Echo """
1. Bajty
2. Kilobites
3. Megabytes
4. Gigabajty
„” ”
Echo "************************************************ ****************************
Przeczytaj format
echo „Wprowadź pełną ścieżkę do pliku docelowego:”
Przeczytaj plik
filesize = $ (wc -c $ plik | awk 'print $ 1')
jeśli [[(„$ format” == 1)]];
Następnie
echo „plik $ to ok. bajtów plików”
elif [[(„$ format” == 2)]];
Następnie
kb = $ (BC <<<"scale=3; $filesize / 1024")
Echo „Plik $ to około $ KB KB”
elif [[(„$ format” == 3)]];
Następnie
MB = $ (BC <<<"scale=6; $filesize / 1048576")
Echo „Plik $ to około $ MB MB”
elif [[(„$ format” == 4)]];
Następnie
GB = $ (BC <<<"scale=12; $filesize / 1073741824")
Echo „Plik $ to około $ GB GB”
w przeciwnym razie
Echo „Nieprawidłowy format."
Wyjście
fi
W powyższym skrypcie zaczynamy od prośby użytkownika o wprowadzenie formatu rozmiaru pliku. Bash odczytuje to wejście i przechowuje je do zmiennej formatu.
Następnie monitujemy użytkownika do ścieżki pliku i przechowujemy tę zmienną w pliku.
Następny krok wywołuje WC -C -Command w określonym pliku. Ponieważ WC -C zwraca rozmiar pliku w bajtach i ścieżce pliku, używamy AWK, aby pobrać tylko rozmiar pliku. Przechowujemy rozmiar w bajtach jako pliki.
Wreszcie, wdrażamy prostą instrukcję IF, aby sprawdzić, czy format rozmiaru wynosi 1 (bajty), 2 (Kilobaytes), 3 (megabajty), 4 (gigabajt). Następnie używamy polecenia BC do konwersji rozmiaru pliku w bajtach na określony format.
NOTATKA: Używamy skali zmiennej dla polecenia BC, aby pomieścić liczbę dziesiętnych na ocenę.
Poniższy obraz pokazuje, jak działa skrypt.
Kolejna uwaga: Powyższy skrypt jest czystych bosów i dlatego jest otwarty na znaczące ulepszenia. Zapraszam do poprawy go i dostosowania do swoich potrzeb.
Metoda 3: Korzystanie z polecenia STAT
Nie możemy zapomnieć o poleceniu STAT. Korzystając z polecenia STAT, możemy wyświetlać szczegółowe informacje o pliku lub systemie plików.
Polecenie STAT zwraca również rozmiar w bajtach. Możesz użyć podobnej logiki w powyższym skrypcie, aby wybrać format.
Oto prosty skrypt za pomocą polecenia STAT:
#!/bin/bash
echo „Wprowadź ścieżkę pliku."
Przeczytaj plik
plikiSize = ”$ (stat -c %s $ plik)
echo "$ plik to precyzyjne bajty $ filesize."
W zamknięciu
W tym samouczku omówiono trzy metody, których można użyć, aby uzyskać rozmiar pliku za pomocą skryptu Bash. Warto zauważyć, że Linux ma kompleksową kolekcję narzędzi i metod, aby to osiągnąć. Znajdź ten, który działa dla ciebie i trzymaj się tego.