Shell Script para medir el tamaño de un archivo

Al escribir scripts de shell, surgen algunas situaciones en las que debe saber el tamaño de un archivo para su posterior procesamiento en los scripts. En este artículo, aprenderemos cómo medir el tamaño de un archivo y abordar ese tipo de situaciones.

Método 1: Usando el comando ls

Acercarse:

  1. En primer lugar, crearemos una variable que contendrá la ruta completa del archivo.
  2. Extraeremos el nombre del archivo de la ruta completa para mostrar el nombre del archivo con el tamaño del archivo.
  3. Usando el comando ls y cut, extraeremos el tamaño del archivo de la información detallada del archivo.
  4. Muestra el nombre del archivo con su tamaño.

Guion:

#! /bin/bash

# path to the file
filepath="/home/amninder/Downloads/cn.zip"

# extracting file name from full file path
name="${filepath##*/}"

# extracting the size of a file
size=$(ls -lah $filepath |cut -d ' ' -f 5)

#displaying file name and file size
echo "FILE SIZE OF $name IS $size"

Producción:

Shell Script to Measure Size of a File

Tamaño de archivo con nombre de archivo

Método 2: Usando el comando stat:

La estadística es una utilidad de línea de comandos de UNIX. Stat toma un archivo como argumento y devuelve la información detallada sobre un archivo/sistema de archivos.

Syntax :stat [option] path/to/file

Nota: Aquí, %s se usa para obtener el tamaño total del archivo, y -c se usa para especificar el formato de salida, es decir, queremos imprimir solo el tamaño total del archivo.

Guion :

#! /bin/bash

# path to the file
filepath="/home/amninder/Downloads/cn.zip"

# extracting file name from full file path
name="${filepath##*/}"

# extracting the size of a file
size=$( stat -c %s $filepath)

#displaying file name and file size
echo "FILE SIZE OF $name IS $size bytes."

Producción:

Shell Script to Measure Size of a File

Tamaño del archivo de impresión.

Método 3: Usando el comando wc:

wc es un acrónimo de recuento de palabras. Como sugiere su nombre, wc se puede usar para imprimir líneas nuevas, recuentos de bytes, número de caracteres, número de palabras en un archivo.

Sintaxis: wc [OPCIÓN]… [ARCHIVO]…

Aquí, la [OPCIÓN] puede contener cualquiera de los siguientes argumentos:

  • -c o –bytes (imprimirá el tamaño en bytes)
  • -m o –chars (imprimirá el conteo de caracteres)
  • -l o –lines (imprimirá los recuentos de nueva línea)
  • -w o –words (imprimirá el número de palabras en el archivo)

Acercarse:

  1. Cree una variable para almacenar la ruta completa del archivo.
  2. Usando wc –bytes, encontraremos el tamaño del archivo y lo almacenaremos en otra variable para mostrarlo.
  3. Muestra el tamaño del archivo.

Guion :

#! /bin/bash

# path to the file
filepath="/home/amninder/Downloads/cn.zip"

# storing file size in a variable.
size=$(wc --bytes < $filepath)

# displaying file size
echo "The size of file is $size Bytes"

Producción:

Shell Script to Measure Size of a File

Tamaño de archivo usando el comando wc

Método 4: Usando el comando de búsqueda:

find es una utilidad de línea de comandos muy poderosa en Linux para buscar archivos y carpetas. Es flexible, podemos buscar archivos o carpetas usando su antigüedad, tamaño, propietario, tipo de archivo, marca de tiempo, permisos en Linux.

Guion:

#! /bin/bash

# path to the file
filepath="/home/amninder/Downloads/cn.zip"

# storing file size in a variable.
size=$(find $filepath -printf %s)

# displaying file size
echo "The size of file is $size Bytes"

Aquí, proporcionamos el archivo para buscar y recuperar su tamaño usando -printf %s. %s dará como resultado el tamaño del archivo en bytes.

Producción:

Shell Script to Measure Size of a File

imprimir el tamaño del archivo usando el comando de búsqueda

Nota: Reemplace la ruta del archivo con la ruta del archivo original.

Publicación traducida automáticamente

Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *