Ora

How to check file size in Linux?

Published in Linux File Management 4 mins read

To check the size of files in Linux, you can utilize several powerful command-line utilities, each offering different levels of detail and presentation. The most common and effective commands for this task are ls, du, and stat.

Using the ls Command for File Size

The ls (list) command is fundamental for viewing file and directory information, including size.

Checking a Single File's Size

To see a file's size in an easy-to-read format, use the ls command with the -l (long listing) and -h (human-readable) options.

  • -l: Displays files in a long list format, showing permissions, owner, group, size, and modification date.
  • -h: Shows file sizes in human-readable units (e.g., KB, MB, GB), making them much easier to understand at a glance.

Example:

ls -lh myfile.txt

This command would output something like:

-rw-r--r-- 1 user group 1.2M Apr 15 10:30 myfile.txt

In this example, myfile.txt is 1.2 megabytes.

Checking Multiple Files or All Files in a Directory

You can also check the sizes of multiple specified files or all files within the current directory:

  • Multiple Files:
    ls -lh file1.txt file2.pdf
  • All Files (and directories) in Current Directory:
    ls -lh

    This will list all items in the current directory with their sizes in human-readable format.

Using the du Command for Disk Usage

The du (disk usage) command is primarily used to estimate file space usage. To determine a file's size, use the du command. The -h option in this command denotes the "human-readable" format, and the filename argument is the name of the file whose size you are interested in.

While ls -l shows the logical size of a file, du reports the actual disk space consumed by the file, which can sometimes differ due to block allocation on the filesystem. For most regular files, the output will be identical or very close to ls -l.

Checking a Single File's Size

Example:

du -h mydocument.odt

This might output:

88K mydocument.odt

Here, mydocument.odt uses 88 kilobytes of disk space.

Checking Directory Sizes

du is especially powerful for checking the size of directories and their contents.

  • Summary of a Directory: To get the total size of a directory (including all subdirectories and files) in human-readable format, use the -s (summary) option along with -h:
    du -sh myproject_directory/

    This will give you a single line showing the total size of myproject_directory.

  • Sizes of all files and subdirectories within a Directory: To see the sizes of all files and subdirectories within a given directory:
    du -h myproject_directory/

    This will list the size of each item recursively.

Using the stat Command for Detailed File Information

The stat command provides much more detailed information about a file or filesystem, including its exact size in bytes, block size, and more.

Checking a File's Detailed Size Information

To get comprehensive details, including the size in bytes, use stat followed by the filename:

Example:

stat image.jpg

Part of the output will include:

  File: image.jpg
  Size: 1234567         Blocks: 240        IO Block: 4096   regular file
Device: 801h/2049d      Inode: 1234568    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    user)   Gid: ( 1000/   group)
Access: 2023-04-15 10:30:00.123456789 -0500
Modify: 2023-04-14 15:45:00.987654321 -0500
Change: 2023-04-14 15:45:00.987654321 -0500
 Birth: 2023-03-01 09:00:00.000000000 -0600

The "Size" field directly shows the file's size in bytes.

Practical Insights and Comparisons

Command Primary Use Case Key Options Output Format Notes
ls Quick overview of file size -l, -h Human-readable list Shows logical file size, good for general file listings.
du Disk usage of files/dirs -h, -s Human-readable list Shows actual disk space used, excellent for directory analysis.
stat Detailed file metadata (none for size) Exact bytes + info Provides precise byte count and other filesystem-level attributes.

Finding the Largest Files/Directories

Combine du with other commands like sort to find the largest items:

  1. Largest Files in the Current Directory (excluding subdirectories):
    ls -lhS | head -n 11

    (Lists files by size, largest first, head shows top 10 files and the total line).

  2. Largest Directories/Files (recursively) from the Current Location:
    du -ah . | sort -rh | head -n 10

    This command recursively calculates the disk usage of all files and directories in the current path (.), sorts them in reverse human-readable order, and then displays the top 10 largest.

These commands provide a robust set of tools for efficiently checking and managing file and directory sizes on your Linux system.