Managing files on Linux often involves identifying the largest files within a directory and its subdirectories, particularly when disk space is at a premium. This article explains how to search for files in Linux and sort them by size, with the largest files appearing first. We’ll explore a few efficient command-line methods to achieve this.
Using find and ls for Detailed File Information
The find command, combined with ls, is a powerful way to locate files and display their sizes in human-readable format. To search through a directory and its subdirectories while sorting files by size, use the following command:
find /path/to/directory -type f -exec ls -lh {} + | sort -k 5 -rhShellScriptExplanation of the Command:
find /path/to/directory -type f:- This searches for all files (not directories) in the specified path.
-exec ls -lh {} +:- This lists the files in a human-readable format (
-lh) showing file sizes.
- This lists the files in a human-readable format (
sort -k 5 -rh:- The
-k 5option sorts by the fifth column, which is the file size in thels -lhoutput. - The
-rflag ensures the sorting is in descending order, with the largest files displayed first. - The
-hoption enables human-readable size sorting (e.g.,K,M,G).
- The
Using find and du for a Simpler Output
If you prefer a cleaner output that focuses solely on file size and path, the following command is more appropriate:
find /path/to/directory -type f -exec du -h {} + | sort -rhShellScriptHere’s what this command does:
- The
findcommand works similarly to the previous example, locating all files in the specified directory. du -hcalculates the disk usage of each file and outputs it in a human-readable format.sort -rharranges the files in descending order by size.
Example Output:
2.0G /home/user/documents/large_file.iso
500M /home/user/documents/video.mp4
300K /home/user/documents/small_file.txtPractical Use Cases
These commands are particularly useful in scenarios like:
- Identifying large files that are consuming disk space.
- Cleaning up old or unnecessary files.
- Diagnosing disk space issues on Linux servers.
For example, running these commands in /var/log can help locate oversized log files that might be bloating your server’s storage.
Sorting files by size on Linux is straightforward using the find command in combination with either ls or du. Depending on your needs, you can choose between a detailed view with file permissions and timestamps or a simpler output focused on size and path. These methods are invaluable for system administrators and power users seeking to optimize disk usage.

Leave a Reply