Hogyan lehet beállítani a fájl méretét a Bash Scriptben

How Get Size File Bash Script



Ha shell parancsfájlokat írunk, olyan helyzetbe kerülhetünk, amikor ismernünk kell a fájl méretét. Például előfordulhat, hogy ezt a méretet kell használnia más műveletek végrehajtásához, például a fájl másik könyvtárba való áthelyezéséhez vagy törléséhez.

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.sh
Adja 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/bash
kidobta '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/bash
kidobta 'Í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.