Tento tutoriál se bude zabývat rychlými metodami, které můžete použít ve skriptu bash k získání velikosti souboru v zadaném formátu, jako jsou bajty, kilobajty, megabajty nebo gigabajty.
Metoda 1: Příkaz ls
První metodou je použít starý dobrý příkaz ls. Při spárování s jinými příkazy může příkaz ls získat velikost souboru.
K implementaci skriptu potřebujeme úplnou cestu k souboru, seznam informací o souboru pomocí ls a velikost uchopíme pomocí příkazu, jako je awk.
Ukázkový skript by vypadal takto:
#!/bin/bash
vyhodil 'Zadejte úplnou cestu k souboru.'
číst soubor
velikost souboru= $(ls -lh $ soubor | awk '{print $ 5}')
vyhodil '$ soubormá velikost$ velikost souboru'
Výše uvedený skript je poměrně jednoduchý. Pomocí příkazu echo and read získáme název úplné cesty k souboru.
Dále použijeme příkaz ls -lh k výpisu všech adresářů a velikosti ve formátu čitelném pro člověka a nakonec předáme výstup awk a uchopíme velikost jako 5thproměnná.
Následuje ukázka skriptu.
chmod +x velikost.sh./size.sh
Zde je výstup:
sudo ./size.shZadejte úplnou cestu k souboru
/etc/passwd
/etc/passwd má velikost 2,9 kB
Metoda 2: Příkaz wc
Další metodou, kterou můžeme použít k získání velikosti souboru v bash skriptu, je příkaz wc. Příkaz wc vrací počet slov, velikost a velikost souboru v bajtech.
Nyní:
Jak víte, čtení velikosti souboru v bajtech není příliš snadné. Abychom tomu zabránili, můžeme implementovat jednoduchou nabídku a požádat uživatele o formát velikosti, jako je KB, MB a GB.
V závislosti na zvoleném formátu převedeme bajty na uvedený formát.
Zde je příklad skriptu pro implementaci takové logiky:
#!/bin/bashvyhodil 'Vyberte formát velikosti, použijte číselné hodnoty (1 pro bajty, 2 pro kilobajty atd.)'
vyhodil '''
1. Byty
2. KiloBytes
3. MegaBytes
4. GigaBytes
'''
vyhodil '*************************************************** **********************
čístformát
vyhodil 'Zadejte úplnou cestu k cílovému souboru:'
číst soubor
velikost souboru= $(toaleta -C $ soubor | awk '{print $ 1}')
-li [[('$ formát'==1)]];
pak
vyhodil '$ souborje cca$ velikost souboruBajtů
elif [[('$ formát'==2)]];
pak
Cca= $(před naším letopočtem <<<'scale = 3;$ velikost souboru/ 1024 ')
vyhodil '$ souborje přibližně$ kbKB '
elif [[('$ formát'==3)]];
pak
mb= $(před naším letopočtem <<<'scale = 6;$ velikost souboru/ 1048576 ')
vyhodil '$ souborje přibližně$ mbMB '
elif [[('$ formát'==4)]];
pak
GB= $(před naším letopočtem <<<'scale = 12;$ velikost souboru/ 1073741824 ')
vyhodil '$ souborje přibližně$ gbGB '
jiný
vyhodil 'Nesprávný formát.'
výstup
být
Ve výše uvedeném skriptu začneme tím, že uživatele požádáme o zadání formátu velikosti souboru. Bash přečte tento vstup a uloží jej do proměnné formátu.
Dále vyzveme uživatele k zadání cesty k souboru a uložíme tuto proměnnou do souboru.
Další krok volá příkaz wc -c na zadaném souboru. Protože wc -c vrací velikost souboru v bajtech a cestu k souboru, používáme AWK k zachycení pouze velikosti souboru. Velikost ukládáme v bajtech jako velikost souboru.
Nakonec implementujeme jednoduchý příkaz if, abychom zkontrolovali, zda je formát velikosti buď 1 (bajty), 2 (kilobajty), 3 (megabajty), 4 (gigabajt). Poté pomocí příkazu bc převedeme velikost souboru v bajtech na zadaný formát.
POZNÁMKA: Pro příkaz bc používáme proměnnou stupnici, která pojme počet desetinných míst na vyhodnocení.
Následující obrázek ukazuje, jak skript funguje.
DALŠÍ POZNÁMKA : Výše uvedený skript je čistě barebone, a proto je otevřený výrazným vylepšením. Nebojte se jej vylepšit a upravit podle svých potřeb.
Metoda 3: Použití příkazu stat
Nesmíme zapomenout na příkaz stat. Pomocí příkazu stat můžeme zobrazit podrobné informace o souboru nebo systému souborů.
Příkaz stat také vrací velikost v bajtech. Pro výběr formátu můžete použít podobnou logiku ve výše uvedeném skriptu.
Zde je jednoduchý skript pomocí příkazu stat:
#!/bin/bashvyhodil 'Zadejte cestu k souboru.'
číst soubor
velikost souboru= $(Stát -C %s$ soubor)
vyhodil '$ souborje přesný$ velikost souborubajtů. '
Na závěr
Tento tutoriál diskutoval tři metody, které můžete použít k získání velikosti souboru pomocí skriptu bash. Je dobré poznamenat, že Linux má rozsáhlou sbírku nástrojů a metod, jak toho dosáhnout. Najděte ten, který vám vyhovuje, a držte se ho.