The ls command is one of the most frequently used commands in Bash, and for good reason – it allows you to easily view the contents of a directory. In this blog post, we’ll cover everything you need to know about the ls command, including its basic usage, options, and advanced features.
Basic Usage
The basic syntax for the ls command is as follows:
ls [options] [files or directories]
When used without any options or arguments, ls will display the contents of the current working directory. For example, if you’re in the /home directory and run ls, you’ll see a list of all the files and subdirectories in that directory.
ls
Desktop Documents Downloads Music Pictures Public Templates Videos
You can also use ls to display the contents of a specific directory. For example, to view the contents of the /usr/local directory, you would run ls /usr/local.
ls /usr/local
bin include lib share
Options
The ls command has a number of options that allow you to customize its behavior. Some of the most commonly used options include:
a: Show all files, including hidden files (those that begin with a.).l: Display the contents of a directory in a long format, showing additional information such as file permissions, owner, and size.
ls -l
total 64
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Desktop
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Documents
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Downloads
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Music
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Pictures
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Public
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Templates
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Videos
t: Sort the contents of a directory by modification time (with the most recently modified files appearing first).
ls -t
Desktop Documents Downloads Music Pictures Public Templates Videos
h: Show file sizes in “human-readable” format (e.g., “1K” instead of “1024”).
ls -lh
total 64K
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Desktop
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Documents
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Downloads
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Music
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Pictures
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Public
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Templates
drwxrwxr-x 2 user group 4.0K Jan 15 21:22 Videos
- You can also combine multiple options together. For example,
ls -altwill show all files in a directory, sorted by modification time, and displayed in a long format.
ls -alt
total 64
drwxrwxr-x 2 user group 4096 Jan 15 21:22 .
drwxrwxr-x 7 user group 4096 Jan 15 21:22 ..
-rw-rw-r-- 1 user group 21 Jan 15 21:22 .hiddenfile
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Desktop
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Documents
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Downloads
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Music
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Pictures
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Public
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Templates
drwxrwxr-x 2 user group 4096 Jan 15 21:22 Videos
Colorized Output
The ls command can be configured to display output in color, making it easier to distinguish between different types of files. By default, this feature is enabled in most modern shells.
To enable colorized output in ls, you can use the --color option.
ls --color
Desktop Documents Downloads Music Pictures Public Templates Videos
You can also configure the colors used by ls by modifying the LS_COLORS environment variable.
LS_COLORS='di=1;35'
Recursive Listing
The ls command also has the ability to recursively list the contents of a directory and all of its subdirectories. You can use the -R option to enable this feature.
ls -R
Desktop:
file1 file2 file3
Desktop/subdir1:
file4 file5
Desktop/subdir1/subdir2:
file6
File Globbing
The ls command also supports file globbing, which allows you to use wildcard characters to match multiple files at once. For example, the command ls *.txt will display all files in the current directory that have the .txt file extension.
ls *.txt
file1.txt file2.txt file3.txt
