Com obtenir la mida d'un fitxer en un script Bash

How Get Size File Bash Script



Quan escrivim scripts d’intèrpret d’ordres, ens podem trobar amb una situació en què necessitem conèixer la mida d’un fitxer. Per exemple, és possible que hàgiu d'utilitzar aquesta mida per realitzar altres accions, com ara moure el fitxer a un directori diferent o suprimir-lo.

Aquest tutorial discutirà els mètodes ràpids que podeu utilitzar en un script bash per obtenir la mida del fitxer en el format especificat, com ara Bytes, Kilobytes, Megabytes o Gigabytes.







Mètode 1: l'ordre ls

El primer mètode és utilitzar l'ordre good old ls. Quan es combina amb altres ordres, l'ordre ls pot agafar la mida d'un fitxer.



Per implementar l'script, necessitem la ruta completa del fitxer, llistar la informació del fitxer amb ls i agafar la mida mitjançant una ordre com ara awk.



Un exemple de guió per a aquest aspecte seria el següent:





#! / bin / bash
trobo 'Introduïu el camí d'accés complet al fitxer.'
llegir dossier
mida de l'arxiu= $(ls -lh $ fitxer | awk '{print $ 5}')
trobo '$ fitxerté una mida de$ mida de fitxer'

El guió anterior és relativament senzill. Mitjançant l'ordre echo and read, obtenim el nom del camí complet del fitxer.

A continuació, fem servir l'ordre ls -lh per llistar tots els directoris i la mida en format llegible per humans i, finalment, passar la sortida a awk i agafar la mida com a 5thvariable.



A continuació es mostra una il·lustració del guió.

chmod + x size.sh
./size.sh

Aquí teniu la sortida per a això:

suo ./size.sh
Introduïu el camí d'accés complet al fitxer
/ etc / passwd
/ etc / passwd té una mida de 2,9K

Mètode 2: l'ordre wc

Un altre mètode que podem utilitzar per agafar la mida d'un fitxer en un script bash és l'ordre wc. L'ordre wc retorna el nombre de paraules, la mida i la mida d'un fitxer en bytes.

Ara:

Com ja sabeu, llegir la mida del fitxer en bytes no és molt fàcil. Per contrarestar-ho, podem implementar un menú senzill i demanar a l’usuari el format de mida, com ara KB, MB i GB.

En funció del format seleccionat, convertirem els bytes a aquest format.

Aquí hi ha un exemple d’escriptura per implementar aquesta lògica:

#! / bin / bash
trobo 'Seleccioneu el format de mida, utilitzeu valors numèrics (1 per a Bytes, 2 per a Kilobytes, etc.)'
trobo '''
1. Bytes
2. KiloBytes
3. megabytes
4. GigaBytes
'
''
trobo '************************************************* *********************** '
llegirformat

trobo 'Introduïu el camí d'accés complet al fitxer de destinació:'
llegir dossier
mida de l'arxiu= $(wc -c $ fitxer | awk '{print $ 1}')
si [[('format $'==1)]];
llavors
trobo '$ fitxeraprox$ mida de fitxerbytes '
elif [[('format $'==2)]];
llavors
aprox= $(bc <<<'escala = 3;$ mida de fitxer/ 1024 ')
trobo '$ fitxerés aproximadament$ kbKB '
elif [[('format $'==3)]];
llavors
mb= $(bc <<<'escala = 6;$ mida de fitxer/ 1048576 ')
trobo '$ fitxerés aproximadament$ mbMB '

elif [[('format $'==4)]];
llavors
gb= $(bc <<<'escala = 12;$ mida de fitxer/ 1073741824 ')
trobo '$ fitxerés aproximadament$ gbGB '
en cas contrari
trobo 'Format incorrecte.'
sortir
ser

A l'script anterior, comencem demanant a l'usuari que introdueixi el format de mida del fitxer. Bash llegeix aquesta entrada i la desa a la variable de format.

A continuació, demanem a l’usuari la ruta del fitxer i emmagatzemem aquesta variable en un fitxer.

El següent pas crida a l'ordre wc -c al fitxer especificat. Com que wc -c retorna la mida del fitxer en bytes i la ruta del fitxer, fem servir AWK per obtenir només la mida del fitxer. Emmagatzemem la mida en bytes segons la mida del fitxer.

Finalment, implementem una sentència if simple per comprovar si el format de mida és 1 (Bytes), 2 (Kilobytes), 3 (Megabytes), 4 (Gigabyte). A continuació, fem servir l'ordre bc per convertir la mida del fitxer en bytes al format especificat.

NOTA: Utilitzem una escala de variació per a l'ordre bc per acomodar el nombre de decimals per avaluació.

La imatge següent mostra com funciona el guió.

UNA ALTRA NOTA : L’escriptura anterior és un òss pur i, per tant, està oberta a millores significatives. No dubteu a millorar-lo i ajustar-lo a les vostres necessitats.

Mètode 3: utilitzar l'ordre stat

No podem oblidar l’ordre stat. Mitjançant l'ordre stat, podem mostrar informació detallada sobre un fitxer o el sistema de fitxers.

L'ordre stat també retorna la mida en bytes. Podeu utilitzar una lògica similar a l'script anterior per seleccionar el format.

Aquí teniu un script senzill que utilitza l'ordre stat:

#! / bin / bash
trobo 'Introduïu el camí del fitxer.'
llegir dossier
mida de l'arxiu= $(estat -c %s$ fitxer)
trobo '$ fitxerés precís$ mida de fitxerbytes. '

A Cloenda

Aquest tutorial ha analitzat tres mètodes que podeu utilitzar per obtenir la mida d'un fitxer mitjançant un script bash. És bo tenir en compte que Linux disposa d’una completa col·lecció d’eines i mètodes per aconseguir-ho. Cerqueu el que us funcioni i seguiu-lo.