Kuinka saada tiedoston koko Bash -skriptissä

How Get Size File Bash Script



Kirjoittaessamme komentosarjoja saatamme kohdata tilanteen, jossa meidän on tiedettävä tiedoston koko. Saatat joutua käyttämään tätä kokoa esimerkiksi muiden toimintojen suorittamiseen, kuten tiedoston siirtämiseen toiseen hakemistoon tai poistamiseen.

Tässä opetusohjelmassa käsitellään nopeita menetelmiä, joita voit käyttää bash -komentosarjassa saadaksesi tiedoston koon määritetyssä muodossa, kuten tavua, kilotavua, megatavua tai gigatavua.







Tapa 1: Ls -komento

Ensimmäinen tapa on käyttää vanhaa hyvää ls -komentoa. Pariksi muiden komentojen kanssa ls -komento voi napata tiedoston koon.



Käyttääksemme komentosarjaa tarvitsemme tiedoston koko polun, luetteloimme tiedoston tiedot ls: llä ja nappaamme koon komennolla, kuten awk.



Esimerkkiskripti tälle näyttää tältä:





#!/bin/bash
heitti pois 'Kirjoita tiedoston koko polku.'
lukea tiedosto
Tiedoston koko= $(ls -lh $ tiedosto | awk '{print $ 5}')
heitti pois ''$ tiedostoon kokoa$ tiedostokoko''

Yllä oleva käsikirjoitus on suhteellisen yksinkertainen. Käyttämällä echo ja read -komentoa saamme tiedoston koko polun nimen.

Seuraavaksi käytämme ls -lh -komentoa luetellaksemme kaikki hakemistot ja koon ihmisen luettavassa muodossa ja lopuksi välitämme tuloksen awk: lle ja nappaamme koon 5thmuuttuja.



Seuraavassa on esimerkki käsikirjoituksesta.

chmod +x koko. sh
./koko.sh

Tässä on tulos siitä:

sudo ./size.sh
Kirjoita tiedoston koko polku
/etc/passwd
/etc/passwd on kooltaan 2,9 kt

Tapa 2: wc -komento

Toinen tapa, jolla voimme napata tiedoston koon bash -komentosarjassa, on wc -komento. Wc -komento palauttaa sanojen määrän, koon ja tiedoston koon tavuina.

Nyt:

Kuten tiedät, tiedoston koon lukeminen tavuina ei ole kovin helppoa. Tämän torjumiseksi voimme toteuttaa yksinkertaisen valikon ja kysyä käyttäjältä kokoformaattia, kuten KB, MB ja GB.

Valitusta muodosta riippuen muunnamme tavut mainittuun muotoon.

Tässä on esimerkki komentosarjasta tällaisen logiikan toteuttamiseksi:

#!/bin/bash
heitti pois 'Valitse kokoformaatti, käytä numeerisia arvoja (1 tavua, 2 kilotavua jne.)'
heitti pois ''''
1. Tavua
2. Kilotavua
3. Megatavua
4. gigatavua
''
''
heitti pois '************************************************ ********************** ''
lukeamuoto

heitti pois 'Kirjoita kohdetiedoston koko polku:'
lukea tiedosto
Tiedoston koko= $(WC -c $ tiedosto | awk '{print $ 1}')
jos [[(''$ muodossa''==1)]];
sitten
heitti pois ''$ tiedostoon n$ tiedostokokoTavua '
elif [[(''$ muodossa''==2)]];
sitten
n= $(bc <<<'asteikko = 3;$ tiedostokoko/ 1024 ')
heitti pois ''$ tiedostoon suunnilleen$ kbKB '
elif [[(''$ muodossa''==3)]];
sitten
mb= $(bc <<<'asteikko = 6;$ tiedostokoko/ 1048576 ')
heitti pois ''$ tiedostoon suunnilleen$ mbMB '

elif [[(''$ muodossa''==4)]];
sitten
gb= $(bc <<<'asteikko = 12;$ tiedostokoko/ 1073741824 ')
heitti pois ''$ tiedostoon suunnilleen$ gbGB '
muu
heitti pois 'Virheellinen muoto.'
poistua
olla

Yllä olevassa komentosarjassa aloitamme pyytämällä käyttäjää syöttämään tiedoston kokoformaatin. Bash lukee tämän syötteen ja tallentaa sen muotomuuttujaan.

Seuraavaksi kehotamme käyttäjää tiedostopolulle ja tallennamme tämän muuttujan tiedostoon.

Seuraava vaihe kutsuu määritetyn tiedoston wc -c -komennon. Koska wc -c palauttaa tiedoston koon tavuina ja tiedoston polun, käytämme AWK: ta vain tiedoston koon noutamiseen. Tallennamme koon tavuina tiedostokoon muodossa.

Lopuksi toteutamme yksinkertaisen if -lauseen tarkistaaksemme, onko kokomuoto joko 1 (tavua), 2 (kilotavua), 3 (megatavua), 4 (gigatavua). Käytämme sitten bc -komentoa muuntaaksesi tiedostokoko tavuina määritettyyn muotoon.

HUOMAUTUS: Käytämme bc -komennossa vaihtelevaa asteikkoa desimaalien määrän ottamiseksi huomioon arviointia kohti.

Alla oleva kuva näyttää, kuinka käsikirjoitus toimii.

TOINEN HUOMAUTUS : Yllä oleva käsikirjoitus on puhdas paljasluu ja on siksi avoin merkittäville parannuksille. Voit vapaasti parantaa sitä ja muokata sitä tarpeidesi mukaan.

Tapa 3: Käyttämällä stat -komentoa

Emme voi unohtaa stat -komentoa. Käyttämällä stat -komentoa voimme näyttää yksityiskohtaisia ​​tietoja tiedostosta tai tiedostojärjestelmästä.

Stat -komento palauttaa myös koon tavuina. Voit käyttää samanlaista logiikkaa yllä olevassa komentosarjassa muodon valitsemiseksi.

Tässä on yksinkertainen komentosarja, joka käyttää stat -komentoa:

#!/bin/bash
heitti pois 'Kirjoita tiedoston polku.'
lukea tiedosto
Tiedoston koko= $(osavaltio -c %s$ tiedosto)
heitti pois ''$ tiedostoon tarkka$ tiedostokokotavua. '

Sulkemisessa

Tässä opetusohjelmassa on käsitelty kolmea tapaa, joilla voit saada tiedoston koon bash -komentosarjan avulla. On hyvä huomata, että Linuxilla on kattava kokoelma työkaluja ja menetelmiä tämän saavuttamiseksi. Löydä itsellesi sopiva ja pidä siitä kiinni.