Ovaj vodič će raspravljati o brzim metodama koje možete koristiti u bash skripti za dobivanje veličine datoteke u navedenom formatu, poput bajtova, kilobajta, megabajta ili gigabajta.
Metoda 1: Naredba ls
Prva metoda je korištenje dobre stare naredbe ls. Kada se upari s drugim naredbama, naredba ls može uhvatiti veličinu datoteke.
Za implementaciju skripte potreban nam je puni put do datoteke, popis podataka o datoteci s ls i hvatanje veličine pomoću naredbe poput awk.
Primjer skripte za to bi izgledao ovako:
#!/bin/bash
izbaciti 'Unesite cijeli put do datoteke.'
čitati datoteka
veličina datoteke= $(ls -aha $ datoteku | awk '{print $ 5}')
izbaciti '$ datotekuima veličinu od$ filesize'
Gornja skripta je relativno jednostavna. Pomoću naredbe echo i read dobivamo naziv pune staze datoteke.
Zatim koristimo naredbu ls -lh za popis svih direktorija i veličine u formatu čitljivom za ljude, i na kraju prosljeđujemo izlaz awku i preuzimamo veličinu kao 5thpromjenjivo.
Slijedi ilustracija scenarija.
chmod +x veličina.sh./size.sh
Evo rezultata za to:
sudo ./size.shUnesite puni put do datoteke
/etc/passwd
/etc/passwd ima veličinu 2,9K
Metoda 2: Naredba wc
Druga metoda koju možemo koristiti za hvatanje veličine datoteke u bash skripti je naredba wc. Naredba wc vraća broj riječi, veličinu i veličinu datoteke u bajtima.
Sada:
Kao što znate, čitanje veličine datoteke u bajtima nije baš jednostavno. Kako bismo se tome suprotstavili, možemo implementirati jednostavan izbornik i zatražiti od korisnika format veličine kao što su KB, MB i GB.
Ovisno o odabranom formatu, bajtove ćemo pretvoriti u navedeni format.
Evo primjera skripte za implementaciju takve logike:
#!/bin/bashizbaciti 'Odaberite format veličine, upotrijebite numeričke vrijednosti (1 za bajte, 2 za kilobajte itd.)'
izbaciti '''
1. Bajtovi
2. KiloBytes
3. MegaBytes
4. GigaBytes
'''
izbaciti '*********************************************** ********************** '
čitatiformat
izbaciti 'Unesite cijeli put do ciljne datoteke:'
čitati datoteka
veličina datoteke= $(zahod -c $ datoteku | awk '{print $ 1}')
ako [[('$ format'==1)]];
zatim
izbaciti '$ datotekuje cca$ filesizeBajtova '
elif [[('$ format'==2)]];
zatim
cca= $(prije Krista <<<'ljestvica = 3;$ filesize/ 1024 ')
izbaciti '$ datotekuje otprilike$ kbKB '
elif [[('$ format'==3)]];
zatim
mb= $(prije Krista <<<'ljestvica = 6;$ filesize/ 1048576 ')
izbaciti '$ datotekuje otprilike$ mbMB '
elif [[('$ format'==4)]];
zatim
gb= $(prije Krista <<<'ljestvica = 12;$ filesize/ 1073741824 ')
izbaciti '$ datotekuje otprilike$ gbGB '
drugo
izbaciti 'Neispravan format.'
Izlaz
biti
U gornjoj skripti počinjemo tako što ćemo zamoliti korisnika da unese format veličine datoteke. Bash čita ovaj ulaz i pohranjuje ga u varijablu formata.
Zatim tražimo od korisnika put do datoteke i spremamo ovu varijablu u datoteku.
Sljedeći korak poziva naredbu wc -c na navedenoj datoteci. Budući da wc -c vraća veličinu datoteke u bajtima i putanju datoteke, koristimo AWK za hvatanje samo veličine datoteke. Veličinu pohranjujemo u bajtima kao veličina datoteke.
Konačno, implementiramo jednostavnu naredbu if kako bismo provjerili je li format veličine 1 (Bytes), 2 (Kilobytes), 3 (Megabytes), 4 (Gigabyte). Zatim koristimo naredbu bc za pretvaranje veličine datoteke u bajtima u navedeni format.
BILJEŠKA: Koristimo varijabilnu ljestvicu za naredbu bc kako bismo prilagodili broj decimala po ocjeni.
Donja slika prikazuje kako skripta radi.
JOŠ JEDNA NAPOMENA : Gornja skripta čista je barebones i stoga je otvorena za značajna poboljšanja. Slobodno ga poboljšajte i prilagodite svojim potrebama.
Metoda 3: Korištenje naredbe stat
Ne možemo zaboraviti naredbu stat. Pomoću naredbe stat možemo prikazati detaljne informacije o datoteci ili datotečnom sustavu.
Naredba stat također vraća veličinu u bajtima. Za odabir formata možete koristiti sličnu logiku u gornjoj skripti.
Evo jednostavne skripte koja koristi naredbu stat:
#!/bin/bashizbaciti 'Unesite put do datoteke.'
čitati datoteka
veličina datoteke= $(država -c %s$ datoteku)
izbaciti '$ datotekuje precizan$ filesizebajtova. '
U zatvaranju
Ovaj vodič je raspravljao o tri metode pomoću kojih možete dobiti veličinu datoteke pomoću bash skripte. Dobro je napomenuti da Linux ima opsežnu zbirku alata i metoda za to. Pronađite onu koja vam odgovara i držite se nje.