Find Files Less Than a Specific Size using Bash

number of files, linux, ubuntu, red hat

If you need to find files less than a certain size using Bash, the find command is your best bet. Whether you’re cleaning up your system, managing logs, or just looking for small files, this command makes it quick and easy.

Find Files Smaller Than a Specific Size

The basic format to search for files smaller than a certain size is:

find /your/directory -type f -size -Xs

Here’s what each part means:

  • /your/directory – The folder where you want to search.
  • -type f – Only looks for files (ignores directories).
  • -size -Xs – Finds files smaller than X size.
    • s = bytes
    • k = kilobytes
    • M = megabytes
    • G = gigabytes

Example: Find Files Smaller Than 500KB

If you want to locate files under 500KB in the Documents folder, use this:

find /home/user/Documents -type f -size -500k

This will return a list of all files in that folder that are less than 500KB.

Example: Find Small Files and Show Details

If you want to list details like size and permissions, try this:

find /var/log -type f -size -1M -exec ls -lh {} +

This is useful when searching for small log files since ls -lh shows file sizes in human-readable format.

See also  Ultimate Guide to Installing Linux on Your Chromebook

Example: Delete Small Files (Use With Caution!)

If you’re sure you want to remove files below a certain size, you can do:

find /tmp -type f -size -100k -delete

This will permanently delete any file under 100KB in the /tmp folder. Be extra careful with this command!

FAQs

How do I find files smaller than 1MB in multiple directories?

Use the find command with multiple paths separated by spaces. Example: find /dir1 /dir2 -type f -size -1M

Can I search for small files and sort them by size?

Yes, use find with ls and sort. Example: find /your/directory -type f -size -500k -exec ls -lh {} + | sort -k5 -h

What happens if I search a directory with too many files?

Find might take longer to process. To speed it up, use the -maxdepth option to limit the search depth or combine with xargs for efficient processing.

Is there a way to exclude certain files from the search?

Yes, use the ! operator with -name. Example: find /your/directory -type f -size -500k ! -name '*.log'

Can I search for files smaller than a size and modified within a time frame?

Yes, use -mtime for modification time. Example: find /your/directory -type f -size -1M -mtime -7 to find files under 1MB modified in the last 7 days.

Wrapping Up

Using Bash to find small files is a handy trick, especially when cleaning up disk space or managing system logs. The find command gives you control over which files you target, whether you’re listing, filtering, or even deleting them. Try it out and see how much clutter you can clear!

Photo of author
As Editor in Chief of HeatWare.net, Sood draws on over 20 years in Software Engineering to offer helpful tutorials and tips for MySQL, PostgreSQL, PHP, and everyday OS issues. Backed by hands-on work and real code examples, Sood breaks down Windows, macOS, and Linux so both beginners and power-users can learn valuable insights. For questions or feedback, he can be reached at sood@heatware.net.