How to Move Files by Extension in Linux

Table of Contents

Introduction

In the world of Linux, file management is a crucial task that often requires organizing files based on specific criteria. One common scenario is moving files based on their extensions. This article will guide you through the process of moving files by extension in Linux, providing practical examples and commands.

Prerequisites

To follow along with the examples in this article, you need access to a Linux terminal and basic knowledge of Linux commands.

Method 1: Using the mv Command

The mv command in Linux is primarily used to move files or directories. We can utilize its capabilities along with shell wildcards to move files based on their extensions.

1. Open a terminal window.

2. Navigate to the directory containing the files you want to move

cd /path/to/source/directory

3. Execute the following command to move all files with a specific extension to a target directory

mv *.extension /path/to/target/directory/

Replace extension with the desired file extension (e.g., .txt, .jpg, etc.), and /path/to/target/directory/ with the destination directory where you want to move the files.

For example, to move all .txt files from the current directory to a target directory named “txtfiles”, you would use

mv *.txt /path/to/target/txtfiles/

Method 2: Using the find Command

The find command is a powerful tool for searching files based on various criteria, including extensions. By combining find with the mv command, we can move files by extension more flexibly.

1. Open a terminal window.

2. Navigate to the directory where you want to start the search

cd /path/to/start/search/

3. Execute the following command to find and move files with a specific extension to a target directory:

find . -type f -name "*.extension" -exec mv {} /path/to/target/directory/ \;

Replace extension with the desired file extension (e.g., .txt, .jpg, etc.), and /path/to/target/directory/ with the destination directory where you want to move the files.

For example, to move all .txt files from the current directory and its subdirectories to a target directory named “txtfiles”, you would use

find . -type f -name "*.txt" -exec mv {} /path/to/target/txtfiles/ \;

Conclusion

Organizing files based on their extensions is a common task in Linux, and understanding how to move files by extension is essential for efficient file management. In this article, we explored two methods using the mv and find commands. By applying these techniques, you can easily move files with specific extensions to desired locations, enabling better organization and productivity in your Linux environment.