Shell Script to Measure Size of a File

02 Jul, 2021
While writing shell scripts, there me some situations arise where you have to need to know the size of a file for further processing in scripts. In this article, we will be learning how to measure the size of a file and tackle those kinds of situations.
Method 1: Using ls command
Approach:
Firstly we will create a variable that will hold the full path of the file.We will extract the file name from the full path for displaying filename with file size.Using ls and cut command we will extract the file size from the detailed information of the file.Display filename with its size.
Firstly we will create a variable that will hold the full path of the file.
We will extract the file name from the full path for displaying filename with file size.
Using ls and cut command we will extract the file size from the detailed information of the file.
Display filename with its size.
Script:
#! /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"
Output:
FIle size with filename
Method 2: Using stat command:
The stat is a UNIX command-line utility. Stat takes a file as an argument and returns the detailed information about a file/file system.
Syntax :stat [option] path/to/file
Note: Here, %s is used to fetch the total size of the file, and -c is used for specifying output format i.e. we want to print the total size of the file only.
Script :
#! /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."
Output:
Printing file size.
Method 3: Using wc command:
wc is an acronym for word count. As its name suggests is wc can be used to print newline, byte counts, number of characters, number of words in a file.
Syntax: wc [OPTION]... [FILE]...
Here, the [OPTION] can contain any of the following argument:
-c or –bytes (it will print the size in bytes)
-m or –chars (it will print character counts)
-l or –lines (it will print the newline counts)
-w or –words (it will print the number of words in the file)
Approach:
Create a variable to store the full path of the file.Using wc –bytes, we will find the size of the file and store it in another variable for displaying.Display the file size.
Create a variable to store the full path of the file.
Using wc –bytes, we will find the size of the file and store it in another variable for displaying.
Display the file size.
Script :
#! /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"
Output:
File size using wc command
Method 4: Using find command:
find is a very powerful command-line utility in Linux to search files and folders. It is flexible, we can search files or folders using their age, size, owner, file type, timestamp, permissions in Linux.
Script:
#! /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"
Here, we are providing the file to find and retrieving its size using -printf %s. %s will result in the file’s size in bytes.
Output:
printing file size using find command
Note: Replace the file path with the path of the original file.
sagartomar9927
Picked
Shell Script
Linux-Unix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Docker - COPY Instruction
scp command in Linux with Examples
chown command in Linux with Examples
Introduction to Linux Operating System
SED command in Linux | Set 2
nohup Command in Linux with Examples
Array Basics in Shell Scripting | Set 1
mv command in Linux with examples
chmod command in Linux with examples
Basic Operators in Shell Scripting