How to Check Linux File Size

How to Check Linux File Size?

Checking file and directory sizes is essential in Linux for managing storage and optimizing system resources.

Different Linux commands offer insights into file sizes, each suited for specific output formats and detail levels.

This article will guide you through the most effective methods to check Linux file size using 4 powerful Linux commands to display file size:

  • ls command: Lists files and directories, and with -lh, displays file sizes in a human-readable format.
  • du command: Shows the disk space used by files or directories, providing total size and supporting human-readable formats with -h.
  • stat command: Provides detailed metadata about a file, including its exact size in bytes, block usage, and other attributes.
  • wc command: Counts the number of bytes in a file using the -c option to show its size.

To effectively manage file sizes and ensure optimal performance on your server, it’s crucial to have a reliable Linux VPS that can handle your storage needs.

Using ls Command to Check Linux File Size

As one of the most basic yet versatile commands in Linux, the ls command lists files and directories and can display file sizes.

ls Command to View File Size

  • You can run ls with the long listing option (-l) provides file sizes in bytes to check file size:
ls -l filename
  • By default, the sizes are shown in bytes, but combining it with the -lh option will display sizes in a human-readable format (like KB, MB, or GB).

For example:

ls -lh filename

Output

-rw-rw-r-- 1 user user 14K Oct 12 11:38 sample.txt

The file size is shown as 14K (14 Kilobytes), which is much easier to understand than the default byte representation. Also, -rw-rw-r-- are the file permissions.

  • Additionally, the -sh option shows file sizes alongside filenames, which can be helpful for directories containing multiple files.
ls -sh filename
  • To sort files by size, use the -S option as below:
ls -lhS
  • To see file sizes in a specific unit like megabytes, you can use the --block-size option. It forces a specific block size in ls:
ls -l --block-size=M

Using du Command to Check Linux File Size

The du (disk usage) command provides more detailed information about disk space usage for files and directories.

It’s particularly useful for examining directory sizes and understanding how much disk space is consumed by files.

du Command to Check Disk Usage

  • To check the size of a specific file with du, run:
du -sh filename

The above command, -s gives the total size of the file, and -h provides a human-readable format.

For example:

du -sh /var
85G  /var
  • You can also use du to check directory size. It provides detailed information, including the size of each subdirectory. To get the total size of a directory, run:
du -sh directory_name
  • Use the -a option to view sizes of all files within a directory and its subdirectories:
du -ah directory_name

The -d option allows you to control the depth of directory traversal. For example, to view the size of directories up to two levels deep, run:

du -h -d 2 directory_name
  • Also, you can combine du with sort and head to sort directories by size and find the largest directories:
sudo du -h /var | sort -rh | head -5

This command will display the five largest directories inside /var.

Using stat Command to Check Linux File Size

The stat command provides detailed information about a file or a directory, including the file size, permissions, modification time, and more.

Unlike the ls command, stat is often more comprehensive because it shows additional metadata.

stat Command to Find Linux File Size

  • Here is the basic usage of the stat command that lets you check the file size:
stat filename
  • While there is a file called file.txt, run the command below to check its size like this:
stat file.txt

Output

  File: file.txt
  Size: 10240      Blocks: 24         IO Block: 4096   regular file
Device: 802h/2050d Inode: 927168      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/ username)   Gid: ( 1000/ username)
Access: 2024-10-09 10:00:00.000000000 +0000
Modify: 2024-10-09 10:00:00.000000000 +0000
Change: 2024-10-09 10:00:00.000000000 +0000

The above output shows:

The Size: 10240 field shows the size of the file in bytes (10 KB).

The Blocks: 24 field shows how many blocks of data the file uses on disk.

The IO Block: 4096 field shows the size of blocks on the filesystem.

  • To view the file size in a more human-readable format, such as KB, MB, or GB, format it like this:
stat --format="%s bytes" file.txt

Output

10240 bytes

As you see, the stat command is particularly helpful for obtaining detailed metadata about a file.

Using wc Command to Check Linux File Size

The wc command (word count) is usually used to count the number of lines, words, and characters in a file.

However, it can also be used to check the size of a file in terms of the number of bytes.

wc Command for File Size

  • To display the size of a file in bytes, use the -c option:
wc -c filename

For example, with a file called opera.txt, check its size using the following command:

wc -c opera.txt

Output

12 opera.txt

In the above output, 12 represents the number of bytes in the file opera.txt.

  • You can also use the wc command to check the size of multiple files at once.

For example:

wc -c file1.txt file2.txt

Output

1024 file1.txt
2048 file2.txt
3072 total

The above command shows the size of each file, followed by the total size for all the files.

  • The wc -c can be combined with other options such as -l (lines), -w (words), and -m (characters), to get additional information about the file’s contents.

For example:

wc -lwm filename

Displays the number of lines, words, and characters, followed by the file name. This is helpful when analyzing text files.

Comparison Between stat, wc, ls, and du Commands

Each of these four commands provides different ways to find file size in Linux. Let’s review at a glance:

CommandUsageDisplays File SizeUnitSpecial FeaturesExample
lsls -lh filenameFile size in human-readableBytes, KB, MBCommon command for listing files. -h provides human-readable formatls -lh sample.txt
dudu -h filenameDisk space usageKB, MB, GBShows the actual disk space used by the file, considering file system block sizedu -h sample.txt
statstat filenameExact file sizeBytesShows detailed metadata including inode, access times, and block sizestat sample.txt
wcwc -c filenameFile size in bytesBytesTypically used to count bytes, words, and lines. -c counts byteswc -c sample.txt

How to Check the Size of the largest Files in a Directory?

You can use the find command combined with sort to list the largest files:

find /path/to/directory -type f -exec du -h {} + | sort -rh | head -5

This will display the top 5 largest files in the directory.

How to Display File Sizes in Megabytes or Gigabytes using ls?

To show file sizes in a specific unit, like MB, use the --block-size option:

ls -l --block-size=M

This forces the output to display file sizes in megabytes.

How to Check the Size of all Files in a Directory?

You can use the du command to display the sizes of all files within a directory:

du -ah /path/to/directory

This will show the sizes of each file and subdirectory in a human-readable format.

How to Speed up du command?

If the directory contains many files, du might take time to compute the sizes. Use the --max-depth option to limit how deep into subdirectories the command will go:

du -h --max-depth=1 /path/to/directory

This will only calculate the sizes of files and directories one level deep.

How to Check the Size of Multiple Files at once?

You can check the size of multiple files by listing them with the ls, du, or wc commands:

ls -lh file1.txt file2.txt
du -sh file1.txt file2.txt
wc -c file1.txt file2.txt

Each command will give you the sizes of the specified files, with ls and du displaying human-readable sizes and wc showing the size in bytes.

Why do some Files show a Size of zero bytes with ls but still use Disk Space with du?

Some files, especially special system files or sparse files, might show a size of 0 bytes because they do not hold traditional data. However, they can still consume disk space due to metadata or because they are sparse.

How to Check the size of hidden Files?

You can include hidden files in your size checks using the ls -la or du commands:

ls -la
du -ah

The -a option ensures that hidden files (those starting with a dot) are included in the output.

Ways to troubleshoot File Sizes when they seem incorrect

If the file sizes reported by different commands appear incorrect, check for:

  • Sparse files: Files that don’t store all data physically on disk.
  • Hard links: Files might share the same disk blocks, making it seem like they’re taking up less space.
  • File system block size: Small files might occupy more space due to the filesystem’s block size

Conclusion

In this article, we explored four essential Linux commands ls, du, stat, and wc.

Each offers unique ways to check Linux file sizes and understand disk usage. Knowing how to check file sizes is crucial for effectively managing storage, ensuring optimal system performance, and avoiding unexpected disk space issues.

By using these commands, you can not only monitor individual file sizes but also track disk usage across directories, identify large files, and gain detailed insights into file metadata.

This information allows you to optimize storage space, capacity plan, and maintain an efficient and organized system.

For further insights into managing your storage efficiently, check out our article on How to Check Free Disk Space in Linux.

Leave a Reply

Your email address will not be published. Required fields are marked.