Ez az oktatóanyag a bash szkriptben használható gyors módszereket tárgyalja, hogy a fájlformátumot a megadott formátumban, például bájtban, kilobájtban, megabájtban vagy gigabájtban kapja meg.
1. módszer: Az ls parancs
Az első módszer a régi jó ls parancs használata. Más parancsokkal párosítva az ls parancs megragadhatja a fájl méretét.
A szkript megvalósításához szükségünk van a fájl teljes elérési útjára, listázzuk a fájl adatait ls -el, és ragadjuk meg a méretet egy olyan paranccsal, mint az awk.
A minta forgatókönyve így nézne ki:
#!/bin/bash
kidobta 'Adja meg a fájl teljes elérési útját.'
olvas fájlt
fájl méret= $(ls -lh $ fájl | awk '{print $ 5}')
kidobta '$ fájlmérete van$ fájlméret'
A fenti szkript viszonylag egyszerű. Az echo és read paranccsal megkapjuk a fájl teljes elérési útjának nevét.
Ezután az ls -lh paranccsal felsoroljuk az összes könyvtárat és a méretet ember által olvasható formátumban, végül a kimenetet átadjuk az awk -nak, és megkapjuk az 5 -ös méretetthváltozó.
Az alábbiakban szemléltetjük a forgatókönyvet.
chmod +x méret.sh./mérete.sh
Itt a kimenet ehhez:
sudo ./size.shAdja meg a fájl teljes elérési útját
/etc/passwd
Az/etc/passwd mérete 2,9K
2. módszer: A wc parancs
Egy másik módszer, amellyel meg tudjuk ragadni a fájl méretét egy bash szkriptben, a wc parancs. A wc parancs visszaadja a szavak számát, méretét és a fájl méretét bájtban.
Most:
Mint tudod, a fájlméret bájtokban történő olvasása nem túl egyszerű. Ennek ellensúlyozására megvalósíthatunk egy egyszerű menüt, és megkérhetjük a felhasználót a méretformátumra, például KB, MB és GB.
A kiválasztott formátumtól függően a bájtokat konvertáljuk az említett formátumba.
Íme egy példa szkript az ilyen logika megvalósításához:
#!/bin/bashkidobta 'Válassza ki a méretformátumot, használjon számértékeket (1 bájt, 2 kilobájt stb.)'
kidobta '''
1. Bájtok
2. KiloBytes
3. MegaBájt
4. GigaBájt
'''
kidobta '************************************************ ********************** '
olvasformátum
kidobta 'Írja be a célfájl teljes elérési útját:'
olvas fájlt
fájl méret= $(WC -c $ fájl | awk '{print $ 1}')
ha [[('$ formátumban'==1)]];
azután
kidobta '$ fájlvan kb$ fájlméretBájtok
elif [[('$ formátumban'==2)]];
azután
kb= $(időszámításunk előtt <<<'skála = 3;$ fájlméret/ 1024 ')
kidobta '$ fájlkörülbelül$kbKB'
elif [[('$ formátumban'==3)]];
azután
mb= $(időszámításunk előtt <<<'skála = 6;$ fájlméret/ 1048576 ')
kidobta '$ fájlkörülbelül$ mbMB '
elif [[('$ formátumban'==4)]];
azután
gb= $(időszámításunk előtt <<<'skála = 12;$ fájlméret/ 1073741824 ')
kidobta '$ fájlkörülbelül$ GBGB '
más
kidobta 'Hibás formátum.'
kijárat
lenni
A fenti szkriptben kezdjük azzal, hogy megkérjük a felhasználót, hogy adja meg a fájlméret formátumát. Bash elolvassa ezt a bemenetet, és tárolja a formátumváltozóban.
Ezután megkéri a felhasználót a fájl elérési útvonalára, és tárolja ezt a változót egy fájlban.
A következő lépés meghívja a wc -c -parancsot a megadott fájlon. Mivel a wc -c visszaadja a fájl méretét bájtban és a fájl elérési útját, az AWK segítségével csak a fájlméretet kapjuk meg. A méretet bájtokban tároljuk fájlméretként.
Végül végrehajtunk egy egyszerű if utasítást annak ellenőrzésére, hogy a méretformátum 1 (bájt), 2 (kilobájt), 3 (megabájt), 4 (gigabájt). Ezután a bc paranccsal konvertáljuk a fájlméretet bájtban a megadott formátumba.
JEGYZET: Változó skálát használunk a bc parancshoz, hogy a kiértékelésenkénti tizedesjegyek számát figyelembe vegyük.
Az alábbi kép mutatja a szkript működését.
ÚJ MEGJEGYZÉS : A fenti szkript puszta csupasz, ezért nyitott a jelentős fejlesztésekre. Nyugodtan javítson rajta, és igazítsa igényeihez.
3. módszer: A stat parancs használata
Nem felejthetjük el a stat parancsot. A stat paranccsal részletes információkat jeleníthetünk meg egy fájlról vagy fájlrendszerről.
A stat parancs visszaadja a méretet bájtban is. A formátum kiválasztásához hasonló logikát használhat a fenti szkriptben.
Íme egy egyszerű szkript a stat paranccsal:
#!/bin/bashkidobta 'Írja be a fájl elérési útját.'
olvas fájlt
fájl méret= $(állapot -c %s$ fájl)
kidobta '$ fájlpontos$ fájlméretbájtok. '
Zárva
Ez az oktatóanyag három módszert tárgyalt, amelyekkel bash parancsfájl segítségével lekérheti a fájl méretét. Jó megjegyezni, hogy a Linux ennek eléréséhez eszközöket és módszereket tartalmaz. Keresse meg az Önnek megfelelőt, és tartsa be magát.