Linux logo

What is Linux ls command?

As the name suggests, the “ls” stands for the list. The Linux ls command is used to list the contents of the directory or directories.

The ls command is a command-line utility for listing the contents of a directory or directories given to it through standard input. It writes results to standard output.

The ls command supports displaying different information about documents, sorting on a range of alternatives, and recursive listing.

Ls command is among the most frequently used commands in Linux

In this guide, we are going to be discussing the basic ls command where we’ve attempted to cover as many parameters as possible.

The general syntax of ls command

The syntax of the ls command:

$ ls [options] [file|directory]

A few examples of ls command with parameters or options are given below with a little description where required.

The simple ls command without any option

The ls with no parameters list files and directories in a bare format where we will not have the ability to look at details such as file types, size, modified date and time, file permissions and links etc.

$ ls
How to view all files including hidden files

Use the –a option lists all files including hidden starting with ‘.’ This is the command example:

$ ls –a
List all subdirectories

Show all subdirectories by using the ‘*’:

$ ls *
List just text files

You may use the * wildcard with “.txt” to show only the text files:

$ ls *.txt
List directories only
$ ls -d */
List Files and Directories with’/’ Character in the end

Using -F option in the ls command will include the’/’ Character in the end of each directory.

$ ls -F
How to List Directories/Files in Reverse Order

For showing the files and directories in the reverse order, use the –r option in the ls command as shown below:

$ ls -r
Recursively listing Sub-Directories

The ls -R option will list very long list directory trees.

$ ls -R
How to Sort Files by File Size

In order to display the files sorted by file size, use the –lS option. This will sort the files from big to small size:

$ ls -lS
How to Show Help Page

Te see the help regarding ls command, just run the –help option in ls command:

$ ls --help
List Directory Information

With ls -l command list files under directory /data. Wherein with -ld parameters show information of data directory.

$ ls -l /data
Screen UID and GID of Files use –ln option
$ ls -n
List directory /home/user/Documents/Books with complete path.
$ ls /home/user/Documents/Books
List user’s home directory

In order to display the user’s home directory, for example “/home/user”, use the following command:

$ ls ~
List with the long format command
$ ls -l


Further Reading:  Create New Directory in Linux/Unix by mkdir
Sort by date/time command

To sort the files/directories by date/time, use the –t options as shown below:

$ ls -t

General Q/A for ‘ls’ command

Q1: What is the purpose of the Linux ls command?

A1: The “ls” command in Linux is used to list the contents of directories. It provides information about files and subdirectories within a specified directory.

Q2: Can I view hidden files with the ls command?

A2: Yes, you can view hidden files by using the “-a” option with the ls command. Hidden files are those starting with a dot, and the command would be: $ ls -a

Q3: How do I list only text files in a directory?

A3: To list only text files, you can use the “*” wildcard with a specific file extension. For example: $ ls *.txt

Q4: Is there a way to list only directories?

A4: Yes, you can list only directories using the “-d” option. The command would be: $ ls -d */

Q5: How do I list files and directories with a ‘/’ character at the end?

A5: Use the “-F” option to include the ‘/’ character at the end of directories. Command: $ ls -F

Q6: Can I sort files by size using the ls command?

A6: Yes, you can sort files by size using the “-lS” option. This will display files from largest to smallest: $ ls -lS

Q7: How do I list files in reverse order?

A7: To list files in reverse order, use the “-r” option. Command: $ ls -r

Q8: Is there a way to list directory trees recursively?

A8: Yes, the “-R” option allows you to list directory trees recursively. Command: $ ls -R

Q9: How can I see the help page for the ls command?

A9: To view the help page, use the “–help” option with the ls command: $ ls --help

Q10: How do I list directory information, including permissions and ownership?

A10: Use the “-l” option to list directory information. For example: $ ls -l /data

Q11: Can I list user’s home directory with the ls command?

A11: Yes, you can list a user’s home directory using the “~” symbol. Command: $ ls ~

Q12: How do I list files with complete path information?

Further Reading:  How to Delete Directories in Linux

A12: To list files with complete path information, use the “-d” option. For example: $ ls -d /home/user/Documents/Books

Q13: How can I display UID and GID of files?

A13: Use the “-n” option with the ls command to display UID and GID information: $ ls -n

Q14: What is the command to list files in long format?

A14: To list files in long format, use the “-l” option. Command: $ ls -l


Best Practices of Using the Linux ls Command

  1. Understand Basic Syntax:
    • Learn the general syntax: $ ls [options] [file|directory]
    • Familiarize yourself with the basic structure to effectively use ls command options.
  2. Start with Simple ls:
    • Execute the command without options to list files and directories in a basic format: $ ls
    • This provides a quick overview without detailed information.
  3. Include Hidden Files:
    • Use the -a option to display hidden files starting with ‘.’ in the output: $ ls -a
    • This ensures visibility of all files, including those typically hidden.
  4. Filter by File Type:
    • Utilize wildcards to filter file types, e.g., display only text files: $ ls *.txt
    • This helps when focusing on specific file formats.
  5. List Directories Only:
    • Use the -d */ option to list only directories: $ ls -d */
    • This provides a concise view of directories in the current location.
  6. Identify Directories with ‘/’ Character:
    • Employ the -F option to include ‘/’ at the end of directory names: $ ls -F
    • Easily distinguish directories from files in the listing.
  7. Reverse Order Listing:
    • Display files and directories in reverse order using the -r option: $ ls -r
    • Useful for quickly identifying the latest or last items.
  8. Recursive Directory Listing:
    • List directory trees recursively with the -R option: $ ls -R
    • Useful for exploring the entire directory structure.
  9. Sort Files by Size:
    • To sort files by size from largest to smallest, use the -lS option: $ ls -lS
    • Helps identify large files that may require attention.
  10. Access Help Page:
    • Access the help page for the ls command to understand available options: $ ls --help
    • Refer to this resource for quick assistance and clarification.
  11. View Detailed Directory Information:
    • Use the -l option for detailed information, including permissions and ownership: $ ls -l /data
    • Gain a comprehensive view of files in the specified directory.
  12. Screen UID and GID with -n Option:
    • Utilize the -n option to display UID and GID of files: $ ls -n
    • Helpful for viewing numeric user and group IDs.
  13. List with Complete Path:
    • View files in a specific directory with complete path information: $ ls /home/user/Documents/Books
    • Useful for understanding the file structure within a directory.
  14. Explore User’s Home Directory:
    • Quickly list files in the user’s home directory using the ‘~’ symbol: $ ls ~
    • Provides a snapshot of the user’s home directory content.
  15. Long Format Listing:
    • For a detailed long format listing, use the -l option: $ ls -l
    • Access comprehensive information including permissions, ownership, and more.
Further Reading:  Rename Directory/Folder in Linux

Wrap Up: Exploring the Power of Linux ls Command

In conclusion, the Linux ls command, aptly named for “list,” is a versatile and fundamental tool for navigating and understanding the contents of directories. As a command-line utility, it offers a wealth of options to tailor the displayed information according to user preferences. This powerful utility is widely used in daily Linux operations.

The general syntax of the ls command, $ ls [options] [file|directory], provides a flexible framework for executing various commands.

Throughout this guide, we’ve delved into essential aspects of the ls command, highlighting its significance in everyday Linux tasks.

Even though users might not be conscious of or use all available options regularly, a solid understanding of the basics can significantly enhance efficiency.

Key takeaways from our exploration include:

  • Overview of Basic Syntax:
    • The syntax $ ls [options] [file|directory] serves as the foundation for executing the ls command with diverse parameters.
  • Common Use Cases:
    • The simple ls command without options provides a quick, bare-format listing of files and directories.
    • Including hidden files with -a, listing subdirectories with *, and filtering specific file types with wildcards like *.txt are common scenarios.
  • Specialized Listing:
    • Techniques such as listing directories only with -d */ or appending ‘/’ to directory names using -F aid in focused directory exploration.
  • Sorting and Formatting:
    • Sorting files by size with --lS, listing in reverse order with -r, and recursively listing sub-directories with -R showcase the command’s versatility.
  • Help and Information:
    • Accessing the help page with --help and obtaining detailed directory information with -l contribute to effective command usage.
  • Advanced Options:
    • Exploring advanced options like displaying UID and GID with -n or listing with complete paths exemplifies the command’s capabilities.

The Linux ls command is a cornerstone for users navigating through the file system, providing insights into file attributes and structures. As users become more familiar with its capabilities, the ls command becomes an indispensable tool for efficient and streamlined interactions within the Linux environment.