W tym samouczku omówione zostaną szybkie metody, których 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 do pliku, wypisz informacje o pliku za pomocą ls i pobierz rozmiar za pomocą polecenia takiego jak awk.
Przykładowy skrypt do tego wyglądałby tak:
#!/kosz/bash
wyrzucił 'Wprowadź pełną ścieżkę do pliku.'
czytać plik
rozmiar pliku= $(ls -lh $plik | awk „{drukuj 5 USD}”)
wyrzucił '$plikma rozmiar$rozmiar pliku'
Powyższy skrypt jest stosunkowo prosty. Używając polecenia echo i read otrzymujemy nazwę pełnej ścieżki pliku.
Następnie używamy polecenia ls -lh, aby wyświetlić wszystkie katalogi i ich rozmiar w formacie czytelnym dla człowieka, a na koniec przekazujemy dane wyjściowe do awk i pobieramy rozmiar jako 5NSzmienny.
Poniżej znajduje się ilustracja skryptu.
chmod +x rozmiar.sh./rozmiar.sh
Oto wynik tego:
sudo ./rozmiar.shWpisz pełną ścieżkę do pliku
/etc/passwd
/etc/passwd ma rozmiar 2.9K
Metoda 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.
Ale już:
Jak wiesz, odczytanie rozmiaru pliku w bajtach nie jest łatwe. Aby temu 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 do tego formatu.
Oto przykładowy skrypt implementujący taką logikę:
#!/kosz/bashwyrzucił 'Wybierz format rozmiaru, użyj wartości liczbowych (1 dla bajtów, 2 dla kilobajtów itd.)'
wyrzucił '''
1. Bajty
2. Kilobajty
3. Megabajty
4. Gigabajty
'''
wyrzucił '************************************************** * ********************** '
czytaćformat
wyrzucił 'Wprowadź pełną ścieżkę do pliku docelowego: '
czytać plik
rozmiar pliku= $(toaleta -C $plik | awk „{drukuj 1 USD}”)
Jeśli [[('$format'==1)]];
następnie
wyrzucił '$plikjest w przybliżeniu$rozmiar plikuBajty
Elifa [[('$format'==2)]];
następnie
około= $(pne <<<'skala=3;$rozmiar pliku/ 1024 ')
wyrzucił '$plikjest w przybliżeniu$ kbKB '
Elifa [[('$format'==3)]];
następnie
mb= $(pne <<<'skala=6;$rozmiar pliku/ 1048576 ')
wyrzucił '$plikjest w przybliżeniu$ mbMB '
Elifa [[('$format'==4)]];
następnie
gb= $(pne <<<'skala=12;$rozmiar pliku/ 1073741824 ')
wyrzucił '$plikjest w przybliżeniuzłGB '
w przeciwnym razie
wyrzucił „Nieprawidłowy format”.
Wyjście
być
W powyższym skrypcie zaczynamy od poproszenia użytkownika o podanie formatu rozmiaru pliku. Bash odczytuje te dane wejściowe i przechowuje je w zmiennej format.
Następnie pytamy użytkownika o ścieżkę do pliku i przechowujemy tę zmienną w pliku.
Następny krok wywołuje polecenie wc -c-command na określonym pliku. Ponieważ wc -c zwraca rozmiar pliku w bajtach i ścieżkę do pliku, używamy AWK do pobrania tylko rozmiaru pliku. Przechowujemy rozmiar w bajtach jako rozmiar pliku.
Na koniec implementujemy prostą instrukcję if, aby sprawdzić, czy format rozmiaru to 1 (bajty), 2 (kilobajty), 3 (megabajty), 4 (gigabajty). Następnie używamy polecenia bc, aby przekonwertować rozmiar pliku w bajtach do określonego formatu.
NOTATKA: W poleceniu bc używamy skali zmienności, aby uwzględnić liczbę miejsc dziesiętnych na ocenę.
Poniższy obrazek pokazuje, jak działa skrypt.
KOLEJNA UWAGA! : Powyższy skrypt jest czystym szkieletem i dlatego jest otwarty na znaczące ulepszenia. Możesz go ulepszyć i dostosować do swoich potrzeb.
Metoda 3: Używanie polecenia stat
Nie możemy zapomnieć o poleceniu stat. Za pomocą polecenia stat możemy wyświetlić 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 używający komendy stat:
#!/kosz/bashwyrzucił 'Wprowadź ścieżkę pliku.'
czytać plik
rozmiar pliku= $(stan -C %s$plik)
wyrzucił '$plikjest precyzyjny$rozmiar plikubajtów.'
W zamknięciu
W tym samouczku omówiono trzy metody, których możesz użyć, aby uzyskać rozmiar pliku za pomocą skryptu bash. Warto zauważyć, że Linux ma obszerny zestaw narzędzi i metod, aby to osiągnąć. Znajdź ten, który Ci odpowiada i trzymaj się go.