Šajā apmācībā tiks apskatītas ātrās metodes, kuras varat izmantot bash skriptā, lai iegūtu faila lielumu noteiktā formātā, piemēram, baitos, kilobaitos, megabaitos vai gigabaitos.
1. metode: komanda ls
Pirmā metode ir izmantot veco labo komandu ls. Pārī ar citām komandām komanda ls var iegūt faila lielumu.
Lai ieviestu skriptu, mums ir nepieciešams pilns faila ceļš, jānorāda faila informācija ar ls un jānoķer lielums, izmantojot komandu, piemēram, awk.
Skripta paraugs tam izskatītos šādi:
#!/bin/bash
izmest ārā 'Ievadiet pilnu faila ceļu.'
lasīt failu
faila lielums= $(ls -lh $ fails | awk '{print $ 5}')
izmest ārā '$ failsir izmērs$ fileize'
Iepriekš minētais skripts ir salīdzinoši vienkāršs. Izmantojot komandu echo un read, mēs iegūstam faila pilna ceļa nosaukumu.
Tālāk mēs izmantojam komandu ls -lh, lai uzskaitītu visus direktorijus un to lielumu cilvēka lasāmā formātā, un, visbeidzot, nododam izvadi awk un paņemam izmēru kā 5tūkstmainīgais.
Tālāk ir parādīta skripta ilustrācija.
chmod +x izmērs.sh./izmērs.sh
Šeit ir izeja tam:
sudo ./izmērs.shIevadiet pilnu faila ceļu
/etc/passwd
/etc/passwd izmērs ir 2,9K
2. metode: komanda wc
Vēl viena metode, ko mēs varam izmantot, lai iegūtu bash skripta faila lielumu, ir komanda wc. Komanda wc atgriež vārdu skaitu, lielumu un faila lielumu baitos.
Tagad:
Kā jūs zināt, faila lieluma lasīšana baitos nav ļoti vienkārša. Lai to novērstu, mēs varam ieviest vienkāršu izvēlni un lūgt lietotājam lieluma formātu, piemēram, KB, MB un GB.
Atkarībā no izvēlētā formāta mēs konvertēsim baitus minētajā formātā.
Šeit ir skripta piemērs šādas loģikas ieviešanai:
#!/bin/bashizmest ārā 'Izvēlieties izmēra formātu, izmantojiet skaitliskās vērtības (1 baitiem, 2 kilobaitiem utt.)'
izmest ārā '''
1. Baiti
2. Kilobaiti
3. Megabaiti
4. Gigabaiti
'''
izmest ārā '*********************************************** ********************** '
lasītformātā
izmest ārā 'Ievadiet pilnu ceļu uz mērķa failu:'
lasīt failu
faila lielums= $(tualete -c $ fails | awk '{print $ 1}')
ja [[('$ formātā'==1)]];
tad
izmest ārā '$ failsir apm$ fileizeBaiti
elifs [[('$ formātā'==2)]];
tad
apm= $(bc <<<'skala = 3;$ fileize/ 1024 ')
izmest ārā '$ failsir aptuveni$ kbKB '
elifs [[('$ formātā'==3)]];
tad
mb= $(bc <<<'skala = 6;$ fileize/ 1048576 ')
izmest ārā '$ failsir aptuveni$ mbMB '
elifs [[('$ formātā'==4)]];
tad
gb= $(bc <<<'skala = 12;$ fileize/ 1073741824 ')
izmest ārā '$ failsir aptuveni$ GBGB '
citādi
izmest ārā 'Nepareizs formāts.'
Izeja
būt
Iepriekš minētajā skriptā mēs vispirms lūdzam lietotājam ievadīt faila lieluma formātu. Bash nolasa šo ievadi un saglabā to formāta mainīgajā.
Tālāk mēs pieprasām lietotājam faila ceļu un saglabājam šo mainīgo failā.
Nākamajā solī norādītajā failā tiek izsaukta komanda wc -c. Tā kā wc -c atgriež faila lielumu baitos un faila ceļu, mēs izmantojam AWK, lai iegūtu tikai faila lielumu. Mēs saglabājam lielumu baitos kā faila lielumu.
Visbeidzot, mēs ieviešam vienkāršu if paziņojumu, lai pārbaudītu, vai lieluma formāts ir 1 (baiti), 2 (kilobaiti), 3 (megabaiti), 4 (gigabaiti). Pēc tam mēs izmantojam komandu bc, lai faila lielumu baitos pārvērstu norādītajā formātā.
PIEZĪME: Mēs izmantojam atšķirīgu skalu komandai bc, lai ņemtu vērā decimāldaļu skaitu katrā novērtējumā.
Zemāk redzamais attēls parāda, kā darbojas skripts.
CITA PIEZĪME : Iepriekš minētais skripts ir tīri basi kauli un tāpēc ir atvērts būtiskiem uzlabojumiem. Jūtieties brīvi to uzlabot un pielāgot savām vajadzībām.
3. metode: izmantojot komandu stat
Mēs nevaram aizmirst stat komandu. Izmantojot komandu stat, mēs varam parādīt detalizētu informāciju par failu vai failu sistēmu.
Komanda stat atgriež lielumu arī baitos. Lai izvēlētos formātu, iepriekšējā skriptā varat izmantot līdzīgu loģiku.
Šeit ir vienkāršs skripts, izmantojot komandu stat:
#!/bin/bashizmest ārā 'Ievadiet faila ceļu.'
lasīt failu
faila lielums= $(Valsts -c %s$ fails)
izmest ārā '$ failsir precīzs$ fileizebaiti. '
Noslēgumā
Šajā apmācībā ir apspriestas trīs metodes, kuras varat izmantot, lai iegūtu faila lielumu, izmantojot bash skriptu. Ir labi atzīmēt, ka Linux ir visaptveroša rīku un metožu kolekcija, lai to sasniegtu. Atrodiet sev piemērotāko un turieties pie tā.