How to use xdg-open command in Linux.

How To Use Xdg-Open Command In Linux.

Linux is renowned for its flexibility and powerful command-line tools, and the xdg-open command is no exception. xdg-open is a versatile utility that simplifies the process of opening files, URLs, and applications on a Linux system. In this article, we will explore the ins and outs of xdg-open, including its basic usage, practical examples, and advanced tips.

  1. Understanding xdg-open

The xdg-open command is a part of the xdg-utils package and serves as a bridge between the command line and your desktop environment. Its primary purpose is to open files, URLs, and applications in a way that is consistent with the user’s preferred applications and settings.


  1. Basic Usage

Using xdg-open is straightforward. To open a file with its default associated application, simply run:

xdg-open filename

Here, “filename” represents the name of the file you want to open. xdg-open will identify the file type and launch the appropriate application.

To open a URL in your default web browser, use the same command with the URL as an argument:


  1. Common Use Cases

a. Opening Documents

You can use xdg-open to quickly open documents, spreadsheets, and presentations. For instance, to open a PDF file named “document.pdf,” use the following command:

xdg-open document.pdf

b. Browsing the Web

To open a URL, whether it’s a link from your terminal or a script, xdg-open is your go-to tool:


c. Launching Applications

xdg-open can also be used to launch applications. For example, to open your preferred text editor:

xdg-open your_text_editor


  1. Handling Non-standard Applications

Sometimes, you may want to open a file with a specific application rather than the default one. You can achieve this by using the application’s executable as the argument:

xdg-open -a /path/to/custom/application filename

Here, “/path/to/custom/application” is the path to the custom application you want to use, and “filename” is the file you want to open.


  1. Advanced Tips

a. Opening Files in the Background

To open a file in the background without blocking your terminal, you can use the nohup command in combination with xdg-open:

nohup xdg-open filename &

b. Using xdg-mime

The xdg-mime utility allows you to query and set the default applications for specific file types. To see the default application for a file type:

xdg-mime query default mime-type

To set a default application:

xdg-mime default application.desktop mime-type

  1. Handling Multiple Files

You can open multiple files at once using xdg-open by providing a list of filenames as arguments. For example:

xdg-open file1.txt file2.pdf

xdg-open will open each file with its respective default application.


  1. Customizing Default Applications

By default, xdg-open uses your system’s default applications for handling various file types. You can customize these default applications to match your preferences by using the xdg-mime command. For example, to set a specific text editor as the default for text files:

xdg-mime default my_text_editor.desktop text/plain

Replace “my_text_editor.desktop” with the appropriate .desktop file of the text editor you want to use.


  1. Using xdg-open in Shell Scripts

You can leverage xdg-open within shell scripts to automate tasks that involve opening files or URLs. This is particularly useful for creating custom solutions or automating repetitive actions.

xdg-open "$file"

This simple shell script opens “example.pdf” with the default PDF viewer.


  1. Dealing with MIME Types

To determine the MIME type of a file, you can use the file command. For instance, to check the MIME type of a file called “example.jpg,” you can run:

file --mime-type example.jpg

Knowing the MIME type can help you set default applications or troubleshoot issues with opening specific file types.


  1. Troubleshooting

If you encounter issues with xdg-open, such as files not opening with the expected applications, you can troubleshoot by:

  • Verifying that the xdg-utils package is installed on your system. You can install it using your distribution’s package manager.

  • Checking the default applications for specific MIME types using the xdg-mime query default command and updating them as needed.

  • Reviewing the MIME type of the file using the file –mime-type command.

  • Making sure the file you are trying to open exists and is accessible.

  • Checking your system’s desktop environment settings for associations between file types and applications.


  1. Using xdg-open with Environmental Variables

You can make use of environmental variables with xdg-open to open files or URLs. This is especially useful when working with dynamic paths. For example:

xdg-open "$file_path"

This approach allows you to use variables to specify file paths or URLs, making your scripts more flexible.


  1. Customizing MIME Type Handling

If you want to fine-tune how specific MIME types are handled, you can edit the ~/.local/share/applications/mimeapps.list file. This file allows you to define preferred applications for different MIME types, effectively customizing your application associations.


  1. Default Application Prioritization

In cases where there are multiple applications associated with the same MIME type, you can set your preferred default application. To do this, you need to use xdg-mime to set the preferred order of applications for a specific MIME type. For example:

xdg-mime default my_preferred_app.desktop application/pdf
xdg-mime default another_app.desktop application/pdf=2

This sets “my_preferred_app.desktop” as the primary application for opening PDF files, and “another_app.desktop” as the secondary.


  1. Opening URLs with Parameters

You can open URLs with parameters using xdg-open. For instance, if you have a URL with a search query, you can pass it as an argument:

xdg-open "$search_query"

  1. Uncommon Use Cases

xdg-open can be useful for various unconventional tasks. For example, you can use it to open a folder in your file manager:

xdg-open /path/to/directory

Alternatively, you can open a device, like a USB drive:

xdg-open /media/username/usb_drive

  1. Handling Complex MIME Types

Some applications use more complex MIME types, like “application/vnd.openxmlformats-officedocument.wordprocessingml.document” for Microsoft Word documents. To open these files, you can still rely on xdg-open, which will find the appropriate application for you.


  1. Graphical and Non-GUI Environments

xdg-open works both in graphical desktop environments like GNOME, KDE, and Xfce, as well as in text-based environments. It will automatically choose the appropriate terminal-based applications if you’re working in a non-graphical environment.


  1. Archiving Tools

You can also use xdg-open to open archives, such as ZIP or TAR files. When you use xdg-open on an archive, it will typically extract its contents using the default archive manager.



The xdg-open command is an essential tool for Linux users, offering a user-friendly way to open files, URLs, and applications. By mastering the usage of xdg-open and its associated tools like xdg-mime, you can tailor your Linux environment to your preferences, automate tasks, and resolve issues related to file associations. Whether you are a beginner or an advanced user, xdg-open is a versatile utility that can enhance your productivity and streamline your daily Linux experience.