Tento tutoriál sa bude zaoberať rýchlymi metódami, ktoré môžete použiť v skriptu bash na získanie veľkosti súboru v určenom formáte, ako sú bajty, kilobajty, megabajty alebo gigabajty.
Metóda 1: Príkaz ls
Prvá metóda je použiť starý dobrý príkaz ls. Pri spárovaní s inými príkazmi môže príkaz ls uchopiť veľkosť súboru.
Na implementáciu skriptu potrebujeme úplnú cestu k súboru, vypísať informácie o súbore pomocou ls a veľkosť získať pomocou príkazu, ako je napríklad awk.
Ukážkový skript by vyzeral takto:
#!/bin/bash
zahodil „Zadajte úplnú cestu k súboru.“
čítať súbor
veľkosť súboru= $(ls -lh $ súbor | awk '{print $ 5}')
zahodil '$ súbormá veľkosť$ veľkosť súboru'
Vyššie uvedený skript je pomerne jednoduchý. Pomocou príkazu echo a čítanie získame názov úplnej cesty k súboru.
Ďalej použijeme príkaz ls -lh na zoznam všetkých adresárov a veľkosti vo formáte čitateľnom pre človeka a nakoniec odovzdáme výstup do awk a uchopíme veľkosť ako 5thpremenná.
Nasleduje ilustrácia skriptu.
chmod +x veľkosť.sh./size.sh
Tu je výstup z toho:
sudo ./size.shZadajte úplnú cestu k súboru
/etc/passwd
/etc/passwd má veľkosť 2,9 kB
Metóda 2: Príkaz wc
Ďalšou metódou, ktorú môžeme použiť na získanie veľkosti súboru v bash skripte, je príkaz wc. Príkaz wc vráti počet slov, veľkosť a veľkosť súboru v bajtoch.
Teraz:
Ako viete, čítanie veľkosti súboru v bajtoch nie je veľmi jednoduché. Aby sme tomu zabránili, môžeme implementovať jednoduchú ponuku a požiadať používateľa o formát veľkosti, ako je KB, MB a GB.
V závislosti od zvoleného formátu prevedieme bajty do uvedeného formátu.
Tu je príklad skriptu na implementáciu takejto logiky:
#!/bin/bashzahodil „Vyberte formát veľkosti, použite číselné hodnoty (1 pre bajty, 2 pre kilobajty atď.)“
zahodil '''
1. Bajty
2. KiloBytes
3. MegaBytes
4. GigaBytes
'''
zahodil „************************************************************* **********************
čítaťformát
zahodil „Zadajte úplnú cestu k cieľovému súboru:“
čítať súbor
veľkosť súboru= $(wc -c $ súbor | awk '{print $ 1}')
keby [[('$ formát'==1)]];
potom
zahodil '$ súborje cca$ veľkosť súboruBajtov
elif [[('$ formát'==2)]];
potom
približne= $(bc <<<„mierka = 3;$ veľkosť súboru/ 1024 ')
zahodil '$ súborje približnekbKB '
elif [[('$ formát'==3)]];
potom
mb= $(bc <<<„mierka = 6;$ veľkosť súboru/ 1048576 ')
zahodil '$ súborje približne$ mbMB '
elif [[('$ formát'==4)]];
potom
GB= $(bc <<<„mierka = 12;$ veľkosť súboru/ 1073741824 ')
zahodil '$ súborje približne$ gbGB '
inak
zahodil „Nesprávny formát.“
východ
byť
Vo vyššie uvedenom skripte začneme tým, že používateľa požiadame o zadanie formátu veľkosti súboru. Bash tento vstup prečíta a uloží do premennej formátu.
Ďalej vyzveme používateľa, aby zadal cestu k súboru a uložil túto premennú do súboru.
Ďalší krok zavolá príkaz wc -c na zadanom súbore. Pretože wc -c vracia veľkosť súboru v bajtoch a cestu k súboru, používame AWK na zachytenie iba veľkosti súboru. Veľkosť ukladáme v bajtoch ako veľkosť súboru.
Nakoniec implementujeme jednoduchý príkaz if, aby sme zistili, či je formát veľkosti buď 1 (bajty), 2 (kilobajty), 3 (megabajty), 4 (gigabajt). Potom použijeme príkaz bc na konverziu veľkosti súboru v bajtoch na určený formát.
POZNÁMKA: Na zmenu počtu desatinných miest na vyhodnotenie používame pre príkaz bc variačnú stupnicu.
Nasledujúci obrázok ukazuje, ako skript funguje.
ĎALŠIA POZNÁMKA : Vyššie uvedený skript je čistý barebones, a preto je otvorený výrazným vylepšeniam. Neváhajte ho vylepšiť a doladiť podľa svojich potrieb.
Metóda 3: Použitie príkazu stat
Nemôžeme zabudnúť na príkaz stat. Pomocou príkazu stat môžeme zobraziť podrobné informácie o súbore alebo súborovom systéme.
Príkaz stat vracia veľkosť aj v bajtoch. Na výber formátu môžete použiť podobnú logiku vo vyššie uvedenom skripte.
Tu je jednoduchý skript pomocou príkazu stat:
#!/bin/bashzahodil 'Zadajte cestu k súboru.'
čítať súbor
veľkosť súboru= $(štát -c %s$ súbor)
zahodil '$ súborje presný$ veľkosť súborubajtov. '
V závere
Tento tutoriál diskutoval o troch metódach, ktoré môžete použiť na získanie veľkosti súboru pomocou skriptu bash. Je dobré poznamenať, že Linux má rozsiahlu zbierku nástrojov a metód, ako to dosiahnuť. Nájdite ten, ktorý vám vyhovuje, a držte sa ho.