- ls command in Linux/Unix
- ls syntax
- ls command options
- ls command examples
- ls code generator
- How to Only List the Files and Not the Directories in Linux
- Using the Ls Command to List the Directories
- Listing the Files by Name
- Listing the Files in Reverse Order
- Listing the Directories
- Listing the Files Using the Find Command
- Conclusion
- About the author
- Omar Farooq
- The Linux LS Command – How to List Files in a Directory + Option Flags
- Prerequisites
- The Linux ls Command
- How to list Files in a Directory with Options
- List files in the current working directory
- List files in another directory
- List files in the root directory
- List files in the parent directory
- List files in the user’s home directory (/home/user)
- List only directories
- List files with subdirectories
- List files recursively
- List files with their sizes
- List files in long format
- List files in long format with readable file sizes
- List files including hidden files
- List files in long format including hidden files
- List files and sort by date and time
- List files and sort by file size
- List files and output the result to a file
- Conclusion
ls command in Linux/Unix
ls is a Linux shell command that lists directory contents of files and directories.
ls syntax
$ ls [options] [file|dir]
ls command options
option | description |
---|---|
ls -a | list all files including hidden file starting with ‘.’ |
ls —color | colored list [=always/never/auto] |
ls -d | list directories — with ‘ */’ |
ls -F | add one char of */=>@| to enteries |
ls -i | list file’s inode index number |
ls -l | list with long format — show permissions |
ls -la | list long format including hidden files |
ls -lh | list long format with readable file size |
ls -ls | list with long format with file size |
ls -r | list in reverse order |
ls -R | list recursively directory tree |
ls -s | list file size |
ls -S | sort by file size |
ls -t | sort by time & date |
ls -X | sort by extension name |
ls command examples
You can press the tab button to auto complete the file or folder names.
List directory Documents/Books with relative path:
List directory /home/user/Documents/Books with absolute path.
List user’s home directory (e.g: /home/user):
List with long format and show hidden files:
Recursive directory tree list:
List only text files with wildcard:
ls redirection to output file:
List files and directories with full path:
ls code generator
Select ls options and press the Generate Code button:
How to Only List the Files and Not the Directories in Linux
In Linux, we use the “ls” command to navigate through directories for files. Listing all the files and folders in Linux is a common command. But occasionally, we must only list the files and not the folders. In that case, this command does not work. To only list the files using the “ls” command, we need to write “ls *.txt”. But this command works if we need to only list the text files since this command only lists the text files. If we need to list all the files and not only the text files, this command becomes useless. For that purpose, Linux provides us with many options. To list all the files in a specific directory only, we use the following methods:
Using the Ls Command to List the Directories
The ls command is the one that can be used to list the files from directories. The “ls” command works the same as how we manually go through the directory and then get all of the files that we want but it makes it easy for us to enlist them by just running a simple command. It also enables us to pass the options along with it to instruct the compiler to list the files according to your desire.
Like the previously-mentioned ls command, we pass the –p option. If we want to see all the hidden files, we add the “-a” option to the ls command. If we know the file name or a part of it, we can also use the “run-parts regex” command. This command lists all the files whose names match the provided name. But to make this command work, we must know at least a part of the filename.
Listing the Files by Name
When it comes to listing the files by names, using the ls command is the easiest way to list them. To list the name of files, we simply have to write the following command:
In the provided syntax, we use the ls command along with the head and the number “4”. This means that it only displays the first four encountered files where the head indicates that each file name is printed in a new line instead of printing all in the same line to make it easy to read. When we run the previous command, the output is shown like in the following snippet in which the names of the files are displayed in our terminal.
Now, let’s suppose that we want to display all the files in the terminal. We simply run the following command:
As we can see in the screenshot, all of the files that are currently stored in the home directory are displayed by running the previous command.
Same as in the previous example, we can print the complete details of the files along with its name by passing another flag which is “-l” along with the ls command using the following command:
As seen in the following figure, the details of the files are also printed in the terminal:
Listing the Files in Reverse Order
Using the ls command, we can also print the file names in reverse order. This means that we want to list the files in an upside-down order, or that our compiler starts listing the files from the last one until the first. For that, we run the following command:
After running this command, we get the following output in which the files are printed in reverse order:
Listing the Directories
The ls command enables us to list the files as well as the directories. When we only want to list the name of the directories within a specific location, we simply use the “-d” option with the ls files. The “d” flag denotes the directories.
After running the previous command, all of the directories that are created in the home directory are displayed in the terminal as shown in the following figure:
Listing the Files Using the Run-Parts Regex Command
The run-parts regex is the Linux command that is used to list all the files that are stored in our system. It is responsible for displaying all the available files. A regex is a tool or pattern that can be used to match the strings that follow any pattern. When it is about searching for the files, the “run apart regex” command can be used. It is effective for enlisting the files from the directories. For that, we must run the following command:
When we run the provided command, we get all the files enlisted that are stored in the home directory of our system. When we want to fetch from any specified directory, we just have to pass the path of the directory from which the files are to be fetched.
Listing the Files Using the Find Command
To list all the files only in a specific directory, we use the find command. Same as the “ls” command, there are some options that can be passed with the find command to instruct our compiler to get the desired output.
By using maxdepth -1, we make sure that we are looking only at the current directory. If we want to look into all files in that directory and all the other subdirectories, we remove this option where “type f” denotes the type of files that we are searching.
By running this command, we fetch the files that are currently stored in our home directory. Let’s suppose we want to fetch for the other directory. We simply replace the dot “.” with the directory’s path which should be used to enlist the files. In the following snippet, the output of the command is shown in which all files are enlisted in our terminal.
Conclusion
In this guide, we discussed how the files are listed using the commands, and how we can list multiple files according to our needs without manually searching for them. By a single command, we can get our desired files. After introducing you to the methods of listing the files, we performed the various examples to make it easy for you to implement them according to your need.
About the author
Omar Farooq
Hello Readers, I am Omar and I have been writing technical articles from last decade. You can check out my writing pieces.
The Linux LS Command – How to List Files in a Directory + Option Flags
Bolaji Ayodeji
Since the creation of Unix in the 1970s, a lot of operating systems have used it as their foundation. Many of these operating systems failed, while others succeeded.
Linux is one of the most popular Unix based operating systems. It’s open source, and is used all over the world across many industries.
One amazing feature of the Linux operating system is the Command Line Interface (CLI) which allows users to interact with their computer from a shell. The Linux shell is a REPL (Read, Evaluate, Print, Loop) environment where users can enter a command and the shell runs it and returns a result.
The ls command is one of the many Linux commands that allow a user to list files or directories from the CLI.
In this article, we’ll go in depth on the ls command and some of the most important flags you’ll need day-to-day.
Prerequisites
- A computer with directories and files
- Have one of the Linux distros installed
- Basic knowledge of navigating around the CLI
- A smile on your face 🙂
The Linux ls Command
The ls command is used to list files or directories in Linux and other Unix-based operating systems.
Just like you navigate in your File explorer or Finder with a GUI, the ls command allows you to list all files or directories in the current directory by default, and further interact with them via the command line.
Launch your terminal and type ls to see this in action:
How to list Files in a Directory with Options
The ls command also accepts some flags (also known as options) which are additional information that changes how files or directories are listed in your terminal.
In other words, flags change how the ls command works:
PS: The word contents used in throughout the article refers to the files and directories being listed, not the actual contents of the files/directories ?
List files in the current working directory
Type the ls command to list the contents of the current working directory:
List files in another directory
Type the ls [directory path here] command to list the contents of another directory:
List files in the root directory
Type the ls / command to list the contents of the root directory:
List files in the parent directory
Type the ls .. command to list the contents of the parent directory one level above. Use ls ../.. for contents two levels above:
List files in the user’s home directory (/home/user)
Type the ls ~ command to list the contents in the users’s home directory:
List only directories
Type the ls -d */ command to list only directories:
List files with subdirectories
Type the ls * command to list the contents of the directory with it’s subdirectories:
List files recursively
Type the ls -R command to list all files and directories with their corresponding subdirectories down to the last file:
If you have a lot of files, this can take a very long time to complete as every single file in each directory will be printed out. You can instead specify a directory to run this command in, like so: ls Downloads -R
List files with their sizes
Type the ls -s command (the s is lowercase) to list files or directories with their sizes:
List files in long format
Type the ls -l command to list the contents of the directory in a table format with columns including:
- content permissions
- number of links to the content
- owner of the content
- group owner of the content
- size of the content in bytes
- last modified date / time of the content
- file or directory name
List files in long format with readable file sizes
Type the ls -lh command to list the files or directories in the same table format above, but with another column representing the size of each file/directory:
Note that sizes are listed in bytes (B), megabytes (MB), gigabytes (GB), or terabytes (TB) when the file or directory’s size is larger than 1024 bytes.
List files including hidden files
Type the ls -a command to list files or directories including hidden files or directories. In Linux, anything that begins with a . is considered a hidden file:
List files in long format including hidden files
Type the ls -l -a or ls -a -l or ls -la or ls -al command to list files or directories in a table format with extra information including hidden files or directories:
List files and sort by date and time
Type the ls -t command to list files or directories and sort by last modified date in descending order (biggest to smallest).
You can also add a -r flag to reverse the sorting order like so: ls -tr :
List files and sort by file size
Type the ls -S (the S is uppercase) command to list files or directories and sort by size in descending order (biggest to smallest).
You can also add a -r flag to reverse the sorting order like so: ls -Sr :
List files and output the result to a file
Type the ls > output.txt command to print the output of the preceding command into an output.txt file. You can use any of the flags discussed before like -la — the key point here is that the result will be outputted into a file and not logged to the command line.
Then you can use the file as you see fit, or log the contents of the file with cat output.txt :
Conclusion
There are tons of other commands and combinations you can explore to list out files and directories based on your needs. One thing to remember is the ability to combine multiple commands together at once.
Imagine you want to list a file in long format, including hidden files, and sort by file size. The command would be ls -alS , which is a combination of ls -l , ls -a , and ls -S .
If you forget any command or are unsure about what to do, you can run ls —help or man ls which will display a manual with all possible options for the ls command: