Encuentra el tamaño del archivo en Bash

MD Aminul Islam 20 junio 2023
  1. Use la palabra clave ls para encontrar el tamaño del archivo en Bash
  2. Use la palabra clave wc para encontrar el tamaño del archivo en Bash
  3. Use la palabra clave stat para encontrar el tamaño del archivo en Bash
Encuentra el tamaño del archivo en Bash

Si está creando un script Bash que puede transferir archivos de una ubicación a otra, es posible que necesite saber el tamaño del archivo en el que está trabajando.

En un script Bash, hay varias formas de encontrar el tamaño de un archivo. Este artículo mostrará cómo encontrar el tamaño de un archivo a través de Bash.

Discutiremos tres métodos diferentes aquí, y puede elegir el perfecto según sus necesidades. Además, veremos ejemplos y explicaciones necesarias para facilitar el tema.

Use la palabra clave ls para encontrar el tamaño del archivo en Bash

Podemos encontrar el tamaño de un archivo usando un comando integrado en Bash, que es la palabra clave ls. A través de esta palabra clave, puede encontrar el tamaño de un archivo siguiendo el ejemplo a continuación:

ls -lh Test.txt | awk '{print  $5}'

Después de ejecutar este comando, obtendrá un resultado como el siguiente:

99

Arriba, compartimos un formato muy simple de este método. En el siguiente ejemplo, compartiremos una forma organizada de averiguar el tamaño del archivo.

El ejemplo actualizado es:

echo "Enter the directory or name of the file:"
read File
FileSize=$(ls -lh $File | awk '{print  $5}')
echo "$File has a size of $FileSize"

En el ejemplo anterior, tomamos el nombre de archivo de la entrada del usuario y luego proporcionamos el tamaño del archivo como salida.

Después de ejecutar este ejemplo, obtendrá el siguiente resultado:

Enter the directory or name of the file:
Test.txt
Test.txt has a size of 99

Use la palabra clave wc para encontrar el tamaño del archivo en Bash

Otra palabra clave disponible en Bash que puede usar para encontrar el tamaño del archivo es wc. La forma más sencilla de usar este comando se comparte a continuación:

wc -c Test.txt

Después de ejecutar la línea de comando anterior, obtendrá el siguiente resultado:

99 Test.txt

Ahora vamos a introducir un ejemplo avanzado. En nuestro ejemplo a continuación, proporcionaremos una opción para que los usuarios seleccionen el formato del tamaño del archivo.

Nuestro ejemplo avanzado contiene los siguientes códigos.

echo "Select the FORMAT for the size:"
echo """
        1. Bytes
        2. KiloBytes
        3. MegaBytes
        4. GigaBytes
     """
echo "--------------------------------------------------------"
read FORMAT

echo "Provide the Filename or Directory: "
read FILE
FileSize=$(wc -c $FILE | awk '{print $1}')
if [[("$FORMAT" == 1)]];
then
    echo "$FILE is approx $FileSize Bytes"
elif [[("$FORMAT" == 2)]];
then
    kb=$(bc <<<"scale=3; $FileSize / 1024")
    echo "$FILE is approximately $kb KB"
elif [[("$FORMAT" == 3)]];
then
    mb=$(bc <<<"scale=6; $FileSize / 1048576")
    echo "$FILE is approximately $mb MB"

elif [[("$FORMAT" == 4)]];
then
    gb=$(bc <<<"scale=12; $FileSize / 1073741824")
    echo "$FILE is approximately $gb GB"
else
    echo "Incorrect FORMAT."
    exit
fi

En el ejemplo anterior, primero proporcionamos una opción al usuario y leímos la entrada del usuario. En la siguiente parte, tomamos la entrada del usuario para el nombre del archivo.

Luego, convertimos el tamaño del archivo según la selección del usuario y proporcionamos el resultado.

Cuando ejecute este código, obtendrá el siguiente resultado:

Select the FORMAT for the size:

        1. Bytes
        2. KiloBytes
        3. MegaBytes
        4. GigaBytes

--------------------------------------------------------
1
Provide the Filename or Directory:
Test.txt
Test.txt is approx 99 Bytes

Use la palabra clave stat para encontrar el tamaño del archivo en Bash

Nuestro último método introducirá otra palabra clave integrada en Bash, stat. Esta palabra clave proporciona principalmente toda la información necesaria relacionada con el archivo.

La forma más sencilla de encontrar el tamaño del archivo es la siguiente:

stat Test.txt

El comando de una sola línea compartido anteriormente le proporcionará el tamaño del archivo y otros detalles como el nombre, el nacimiento, etc. Obtendrá el siguiente resultado después de ejecutar el comando anterior:

  File: Test.txt
  Size: 99              Blocks: 0          IO Block: 4096   regular file
Device: 11h/17d Inode: 281474976715600  Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/  aminul)   Gid: ( 1000/  aminul)
Access: 2022-08-04 14:57:18.556623600 +0600
Modify: 2022-08-04 14:45:27.259462300 +0600
Change: 2022-08-04 14:45:27.259462300 +0600
 Birth: -

El ejemplo compartido anteriormente contiene información innecesaria sobre el archivo. Pero en el siguiente ejemplo, puede eliminarlos.

Nuestro próximo código actualizado con respecto a este método es el siguiente:

echo "Enter the path or directory: "
read FilePath
FileSize=$(stat -c %s $FilePath)
echo "$FilePath is precise $FileSize bytes."

Después de ejecutar el código de ejemplo anterior, obtendrá el siguiente resultado:

Enter the path or directory:
Test.txt
Test.txt is precise 99 bytes.

Tenga en cuenta que todo el código utilizado en este artículo está escrito en Bash. Solo se podrá ejecutar en el entorno Linux Shell.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - Bash File