The “dir” Command in Linux [15+ Practical Use Cases]

The “dir” command in Linux is a versatile tool for managing files and directories in the Linux file system. It provides users with an easy way to list directory contents, organize files, and perform basic file system operations. This command-line interface follows a simple and intuitive syntax to enable users to search directory structures and access file information efficiently.

In this article, I’ll demonstrate the most common uses of the dir command in Linux with relevant examples.

Syntax of “dir” Command

The syntax of the dir command typically follows the following format:

dir [Option] [Directory]

Note: The element enclosed by a square bracket in the above syntax is not mandatory.

EXPLANATION
  • Option: These are optional flags or parameters that modify the behavior of the dir command.
  • Directory: You can provide the directory’s path to the dir command to list the contents of a directory that isn’t in your current working directory. This means you don’t need to navigate to the directory first; you can directly specify its path instead of its name.

Options of “dir” Command

As dir is an external command, it does have a man page that can help you get all the required information regarding this command. Just write the following command inside your terminal:

man dir

There are several options associated with the dir command. Some of the most used options are:

Options Functionality
-l Displays a long listing format, showing detailed information about files.
-s -l Sorts and lists files by size.
-t -l Sorts and lists files by modification time.
-a or – -all / -al Lists all files, including hidden files starting with “.”
-A or – -almost-all Lists all files except “’.” and “..”, which represent current directory and parent directory.
-d */ Lists directories only, excluding files.
-author (-l – -author) Displays authors of files when available.
-B or – -ignore-backups Ignores backup files ending with a “~”
– -color Enables colorized output for improved readability.
-F or – -classify (- -file-type) Appends indicators to filenames indicating their type (e.g., “/” for directories)
– -format=WORD Customizes output format using the specified word format.
– -hide=PATTERN / – -ignore=PATTERN Customizes output format using the specified word format. The WORD can take the following values: across (-x), commas, (-m), horizontal (-x), long (-l), single-column (-1), verbose (-l), vertical (-C).
-n or – -numeric-uid-gid Displays numeric user and group IDs instead of names.
-r or – -reverse Lists entries in reverse order.
-R or – -recursive Lists subdirectories recursively.
– -sort=PARAMETER Specifies the parameter for sorting the output. The PARAMETER can take the following values: none (-U), size (-S), time (-t), version (-v), extension (-X)
– -help Displays usage information and options.
– -version Displays version information.
-h -l Lists file sizes in a human-readable format.
-i, – -inode Displays inode or index numbers of files.
-g, -gG -g lists files without their owners and -G lists files without their group owners.
-l – -group-directories-first Lists directories first in the output, before files.

Difference Between “dir” and “ls” Command

Similar to the ls command, the Linux dir tool lists the contents of directories, but with a few significant differences. By default, dir organizes the output in columns, sorted vertically, and represents special characters using backslash escape sequences. Nevertheless, dir doesn’t produce colored output in the terminal as ls does. Furthermore, dir is exclusive to some distributions like Ubuntu and might not be available on other computers, whereas ls is extensively used and accessible on a variety of Unix-like operating systems.

Practical Examples Using “dir” Command in Linux

Below, I’ll outline a handful of practical applications and examples of using the dir command so that you can gain a deeper understanding of this topic and learn to use the dir command in Linux more effectively:

1. Listing Files and Directories

Listing the contents of a directory is the primary task of the dir command. There are a lot of options associated of this command through which you can manipulate the listing process. Some of the most useful options with their use cases are:

1.1. Listing Files and Directories in Current Directory

To list all the files and directories inside the current directory, simply run the dir command without any arguments:

dir

dir command

Here, all the contents (except the hidden ones) of the current directory are listed.

1.2. Listing Files & Directories Through Definite Path

To list all the files and directories of any directory of the system while working in a different directory, you can write dir [directory_path].

For instance, to list all the contents of the Desktop directory from a different directory (Home), run the following command:

dir /home/soumik/Desktop

dir command for actual path

1.3. Listing Files With Detailed Information

To list all the contents of a directory including their detailed information such as permission details, owners & groups, file size, modification time, etc, run the following command:

dir -l

File details with dir -l command

1.4. Listing Files With Sorted Detailed Information

To list all the contents of a directory and sort them according to a custom parameter, you can write: dir -l --sort=PARAMETER. Some of the common sorting parameters are none (-U), size (-S), time (-t), version (-v), extension (-X), etc.

For example, if you want to sort the contents of the current directory by time, run the following command:

dir -l --sort=time

File sort by time

There is a shorter way of writing the sort command with desired sorting options:

dir -l -s -t

File sort by time in short

This command also sorts the contents of the working directory by time (descending order).

1.5. Listing & Highlighting Contents With Separate Colors

By default, the dir command does not color the directories differently as the ls command does. But if you want to separate the directories from the files by highlighting them, run the following command:

dir --color

dir command with color

In the above image, you can see that the directories are colored blue.

1.6. Listing All Files (Including Hidden)

The dir command by default does not list the hidden contents inside a directory. If you want the hidden files to be also included inside the list, run the following command:

dir -a

Again, if you want to list the hidden files but leave out the ‘.’ (current directory) and ‘..’ (parent directory) directories, run the following command:

dir -A

Showing all files including hidden

1.7. Listing Contents With File Type Indicators

The dir command uses some special characters that indicate the content type. They are:

Indicator Character Indications
/ Indicates a directory.
* Indicates an executable file.
@ Indicates a symbolic link.
% Indicates a whiteout.
= Indicates a socket.
| Indicates a FIFO (First In, First Out)

To display the contents of the working directory including their file type indicators run the following command:

dir -F

Showing content type

In the image above, the directories are listed with a ‘/’ (backslash) character to their right. So, according to the output, “New Folder”, “hello”, and “world” are 3 directories inside the desktop.

1.8. Listing File Details in Human-Readable Format

To make data easier for people to grasp, the human-readable format usually converts bytes to bigger units like kilobytes (KB), megabytes (MB), or gigabytes (GB). This allows for a quicker understanding of file sizes and resource use.

To list all the files inside the working directory with their corresponding details in human-readable format, run the following command:

dir -h -l

Listing Items in Human Readable Format

1.9. Listing Directories Only

The dir command in Linux doesn’t have a built-in option to filter directories only, but you can achieve the desired result by combining it with wildcards.

To list only directories and leave out other content types, run the following command:

dir -d */

Listing dirctories only

1.10. Listing Contents With Index Number

An inode number, short for “index node number,” is a unique identifier assigned to each file or directory in a Unix-like file system. It serves as a reference or index to locate and access the associated data blocks and metadata of the file or directory.

In Linux, the dir -i or dir --inode command displays the inode numbers of files and directories in the current directory. For example, run the following command:

dir -i

Listing files with ids

In the above image, all the files and directories are listed and separated with a unique inode number.

1.11. Listing Contents Without Owners

If you want to list the files and directories with detailed information but intentionally leave out the owner’s names run the following command:

dir -g

This way the command will only show the group owner names for each content. But if you also want to leave out the group owner’s names along with the owner’s names run the following command:

dir -gG

Listing files without owner and without owner and group

1.12. Listing Directories Before Others

To list the directories before the other contents inside the working directory, run the following command:

dir -l --group-directories-first

Listing directories first

In the above image, you can see the directories listed on top of the output.

Note: The -l option was used to display the files with details that help you identify the directories from other types of content. If you do not need that, just the command dir --group-directories-first would do the job.

1.13. Listing Contents in Reverse Order

By default, the dir command will list the contents of the working directory in alphabetical order. But, if you want that order to be reversed and generate an inverted output, run the following command:

dir -r

Arranging in reverse order

1.14. Listing Contents With User & Group IDs

If you want the user and group IDs to be listed alongside the contents, instead of their user and group names, run the following command:

dir -n

Listing files with owner & group ids

1.15. Listing Contents Including Authors

By default, the dir command does not display the author names of the contents. The file owner name refers to the user account that owns the file, while the author name typically refers to the individual who created or authored the content of the file.

To display the contents with author names along with owner and group names, run the following command:

dir -l --author

Files with owners, groups & authors

In the above image, all the contents are displayed with their corresponding owner and group names. But, if you want to display only the author names, not the owner and group names, you can run the command dir -author instead.

2. Changing Default Output Format

By default, the dir command displays the output in a horizontal format. The dir command’s -format=WORD option adjusts the output appearance. Where, WORD options represent “across,” “commas,” “horizontal,” “long,” “single-column,” “verbose,” and “vertical,” corresponding to -x, -m, -x, -l, -1, -l, -C options respectively.

For example, to display the output in a single column, run the following command:

dir --format=single-column

Changing output format

3. Viewing Contents Recursively

Recursive viewing involves examining directory contents and subdirectories, continuing through each level of nested directories to explore all files.

To list the contents of the working directory recursively, run the following command:

dir -R

Lisiting items recursively

In the above image, all the contents inside nested directories are displayed separately. For example: inside the current directory, there is a directory named “hello” and that directory has another file inside it named “hello there”.

4. Ignoring Contents of Specific Patterns

Suppose, you want to ignore or hide some contents of specific patterns while listing the contents of a directory using the dir command. For example: if you wish to ignore all the files inside the working directory containing a .txt extension, run the following 1 of 2 commands:

dir --ignore=*.txt

Or,

dir --hide=*.txt

Ignoring specific patterns using dir command in linux

Both commands have similar functionality. Here, the asterisk (*) acts as a wildcard. A wildcard is a symbol or character that represents one or more other characters, allowing for flexible pattern matching in commands or search operations. Here, *.txt represents any sequence of characters in file names with the “.txt” extension.

Conclusion

In this article, I have explored the features of the Linux “dir” command, showing how useful it is for accessing and managing files and directories through various practical examples. I urge readers to learn more about the “dir” command and use it along with other file management programs to customize their file navigation processes to suit their own requirements and tastes. Thank you!

People Also Ask

What is a directory in Linux?

In Linux, a directory is a type of file that organizes and stores other files and directories. It serves as a container for organizing and structuring the file system hierarchy.

Can I search for files with specific names or patterns using the ‘dir’ command?

No, the “dir” command in Linux is primarily used for listing files and directories in a directory, and it does not include built-in search functionality for specific names or patterns. However, you can use other commands such as “find” or “grep” to search for files with specific names or patterns in Linux.

How do I navigate to a specific directory using the ‘dir’ command?

The “dir” command does not allow direct navigation to a specific directory. Instead, you can use the “cd” (change directory) command followed by the directory path to navigate to a specific directory in Linux.

Rate this post
LINUX
FUNDAMENTALS
A Complete Guide for Beginners Enroll Course Now
Avatar photo

Md. Nafis Soumik graduated from the Bangladesh University of Engineering & Technology, Dhaka, with a BSc—Engg in Naval Architecture & Marine Engineering. In January 2023, Soumik joined Softeko as an Excel and VBA content developer. Since then, he has authored over 50 articles, spanning topics from fundamental to advanced Excel concepts such as Data Analysis and Manipulation, Data Visualization, Pivot Tables, Power Query, VBA, and so on. He participated in 2 specialized training programs on VBA and Chart & Dashboard design in Excel. Furthermore, he possesses a keen interest in Linux and currently serves as an executive content developer specializing in Linux. He aims to produce valuable content tailored to Linux users. During his leisure time, he enjoys music, traveling, and science documentaries. Read Full Bio

Leave a Comment